Tài liệu

API công khai có rate limit

API công khai có rate limit Ví dụ này bảo vệ endpoint báo giá công khai mà không yêu cầu đăng nhập. Route Tạo custom route GET /public/quote và cho phép công khai GET . Pre-hook const result = await @HELPERS.$rateLimit.byIp({ maxRequests: 60, perSeconds: 60 }); if (!result.allowe

API công khai có rate limit

Ví dụ này bảo vệ endpoint báo giá công khai mà không yêu cầu đăng nhập.

Route

Tạo custom route GET /public/quote và cho phép công khai GET.

Pre-hook

const result = await @HELPERS.$rateLimit.byIp({
  maxRequests: 60,
  perSeconds: 60
});

if (!result.allowed) {
  @THROW429(`Rate limit exceeded. Try again in ${result.retryAfter}s`);
}

Handler

const quotes = await #quote.find({
  filter: { status: { _eq: 'published' } },
  fields: 'id,text,author',
  sort: '-createdAt',
  limit: 10
});

return {
  data: quotes.data?.[Math.floor(Math.random() * quotes.data.length)] || null
};

Giữ pre-hook làm ranh giới bảo vệ. Với rate limit tiêu chuẩn cho toàn route, dùng Guard khai báo trong admin console.