fastify-rate-limit icon indicating copy to clipboard operation
fastify-rate-limit copied to clipboard

Support rate limit groups for specific routes

Open OleksandrBoiko1 opened this issue 7 months ago • 4 comments

Prerequisites

  • [X] I have written a descriptive issue title
  • [ ] I have searched existing issues to ensure the feature has not already been requested

🚀 Feature Proposal

It'll be great to have an option to apply rate limit for this two endpoints, not for the whole project. Something that required here. Because solution from issues is not working

Important notice, I mean that rateLimit should calculate calls for this two endpoints, not separate

const routes: FastifyPluginAsync = async function (f) {
  const fastify = f.withTypeProvider<ZodTypeProvider>();

  fastify.post(
    '/',
    {
      schema: {
        tags: SCHEMA_TAGS,
        body: BodySchema,
        response: {
          200: ResponseSchema
        }
      }
    },
    async (req) => {
      // Doing something
    }
  );

  fastify.get(
    '/',
    {
      schema: {
        tags: SCHEMA_TAGS,
        response: {
          200: ResponseSchema
        }
      }
    },
    async (req) => {
      // Doing something
    }
  );
};

export default routes;

Thanks!

Motivation

Usefull feature!

Example

Register fastifyRateLimit only for encapsulate endpoints fastify.register(fastifyRateLimit, { config: { rateLimit: { max: 3, timeWindow: '1 minute' } } })

OleksandrBoiko1 avatar Jun 27 '24 19:06 OleksandrBoiko1