This example 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
Deploy it to the cloud with Vercel (Documentation).
Template featuring API Rate limiting at the edge with Redis using Upstash.
This example 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
Deploy it to the cloud with Vercel (Documentation).