This demo features API Rate limiting at the edge with Redis using Upstash.
The pattern for rate limiting is inspired by the GitHub API.
https://edge-functions-api-rate-limit.vercel.app
Deploy the example using Vercel:
Execute create-next-app
with npm or Yarn to bootstrap the example:
npx create-next-app --example https://github.com/vercel/examples/tree/main/edge-functions/api-rate-limit api-rate-limit
# or
yarn create next-app --example https://github.com/vercel/examples/tree/main/edge-functions/api-rate-limit api-rate-limit
You'll need to have an account with Upstash. Once that's done, copy the .env.example
file in this directory to .env.local
(which will be ignored by Git):
cp .env.example .env.local
Then open .env.local
and set the environment variables to match the REST API of your database. It should look like this:
UPSTASH_REST_API_DOMAIN = "us1-shiny-firefly-12345.upstash.io"
UPSTASH_REST_API_TOKEN = "your-api-token"
Next, run Next.js in development mode:
npm install
npm run dev
# or
yarn
yarn dev