slogan3

Maak een OpenAPI Specificatie voor Geavanceerde API Rate Limiting

description

Met deze prompt kun je een OpenAPI specificatie maken die geavanceerde rate limiting beschrijft, waardoor je API beter beschermd is tegen overbelasting en misbruik. Dit voorkomt downtime en verbetert de gebruikerservaring door duidelijke limieten en acties te definiëren. Het helpt ontwikkelaars om efficiënte en veilige API's te bouwen zonder onduidelijkheden over toegestane verzoekfrequenties.

prompt

Help mij een OpenAPI specificatie te maken die geavanceerde rate limiting bevat voor mijn API. API Naam: <voer de naam van mijn API in> Rate Limiting Strategieën (bijv. fixed window, sliding window, token bucket): <beschrijf de gewenste rate limiting methodes> Limieten per Endpoint: <geef limieten voor specifieke endpoints> ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
openapi: 3.0.3 info: title: E-commerce API version: 1.0.0 description: > API voor e-commerce toepassingen met geavanceerde rate limiting. De rate limiting gebruikt een fixed window strategie. - Endpoint /users: 50 verzoeken per minuut. - Bij overschrijding wordt een 429 Too Many Requests geretourneerd. - Authenticatie wordt verzorgd via OAuth2. servers: - url: https://api.example.com components: securitySchemes: OAuth2Security: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.example.com/oauth/authorize tokenUrl: https://auth.example.com/oauth/token scopes: read: Reading access write: Writing access parameters: RateLimitInfo: name: X-RateLimit-Limit in: header description: Het maximum aantal verzoeken toegestaan binnen de window. schema: type: integer example: 50 RateRemainingInfo: name: X-RateLimit-Remaining in: header description: Het aantal resterende verzoeken binnen de window. schema: type: integer example: 10 RateResetInfo: name: X-RateLimit-Reset in: header description: Unix-tijdstip waarop de rate limit window wordt gereset. schema: type: integer example: 1697049600 security: - OAuth2Security: [] paths: /users: get: summary: Get gebruikersinformatie description: > Deze endpoint heeft een limiet van 50 verzoeken per minuut, gebaseerd op een fixed window strategie. Bij overschrijding wordt een 429 Too Many Requests geretourneerd. security: - OAuth2Security: [read] responses: '200': description: Succesvolle respons met gebruikersgegevens. headers: X-RateLimit-Limit: $ref: '#/components/parameters/RateLimitInfo' X-RateLimit-Remaining: $ref: '#/components/parameters/RateRemainingInfo' X-RateLimit-Reset: $ref: '#/components/parameters/RateResetInfo' content: application/json: schema: type: array items: type: object properties: id: type: integer name: type: string '429': description: Te veel verzoeken - rate limit overschreden. headers: X-RateLimit-Limit: $ref: '#/components/parameters/RateLimitInfo' X-RateLimit-Remaining: $ref: '#/components/parameters/RateRemainingInfo' X-RateLimit-Reset: $ref: '#/components/parameters/RateResetInfo' content: application/json: schema: type: object properties: error: type: string example: "Rate limit exceeded. Please try again later." # Opmerking: # - De server-side implementatie moet de fixed window rate limiting logica toepassen. # - Bij overschrijding wordt standaard een 429 statuscode teruggestuurd. # - De headers X-RateLimit-Limit, X-RateLimit-Remaining en X-RateLimit-Reset geven inzicht in de limieten en het reset-uur. # - Authenticatie via OAuth2 is vereist voor alle endpoints. ```
provider: deepseek
model: deepseek-chat
Zeker, hier is een OpenAPI 3.0 specificatie in YAML voor je E-commerce API met gevraagde rate limiting regels: ```yaml openapi: 3.0.0 info: title: E-commerce API description: API voor e-commerce platform met geavanceerde rate limiting version: 1.0.0 contact: name: API Ondersteuning email: support@ecommerce-api.nl servers: - url: https://api.ecommerce.nl/v1 description: Productieserver components: securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://api.ecommerce.nl/oauth/authorize tokenUrl: https://api.ecommerce.nl/oauth/token scopes: users.read: Lees toegang tot gebruikersgegevens users.write: Schrijftoegang tot gebruikersgegevens parameters: RateLimit-Limit: in: header name: X-RateLimit-Limit description: Aantal verzoeken toegestaan per tijdvenster schema: type: integer example: 50 RateLimit-Remaining: in: header name: X-RateLimit-Remaining description: Resterende verzoeken in huidig tijdvenster schema: type: integer example: 42 RateLimit-Reset: in: header name: X-RateLimit-Reset description: Tijdstip waarop het rate limit venster reset (Unix timestamp) schema: type: integer example: 1627833600 responses: TooManyRequests: description: Te veel verzoeken - Rate limit overschreden headers: X-RateLimit-Limit: $ref: '#/components/parameters/RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/parameters/RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/parameters/RateLimit-Reset' Retry-After: description: Aantal seconden wachten voordat opnieuw te proberen schema: type: integer example: 30 content: application/json: schema: type: object properties: error: type: string example: "Rate limit exceeded" message: type: string example: "U heeft de maximale hoeveelheid verzoeken overschreden. Probeer het over 30 seconden opnieuw." security: - OAuth2: - users.read - users.write paths: /users: get: summary: Haal gebruikersgegevens op description: | Endpoint voor het ophalen van gebruikersgegevens. **Rate Limiting:** - Maximum 50 verzoeken per minuut - Fixed window strategie - Bij overschrijding: HTTP 429 statuscode tags: - Users security: - OAuth2: [users.read] responses: '200': description: Succesvol gebruikersgegevens opgehaald headers: X-RateLimit-Limit: $ref: '#/components/parameters/RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/parameters/RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/parameters/RateLimit-Reset' content: application/json: schema: type: array items: $ref: '#/components/schemas/User' '429': $ref: '#/components/responses/TooManyRequests' '401': description: Niet geautoriseerd '403': description: Verboden - Onvoldoende rechten components: schemas: User: type: object properties: id: type: integer format: int64 name: type: string email: type: string format: email required: - id - name - email x-rate-limit-policies: fixed_window: type: fixed_window limit: 50 window: 1m algorithm: fixed_window on_exceeded: response_status: 429 headers: Retry-After: 60 ``` Deze specificatie bevat: 1. **Fixed window rate limiting** voor het `/users` endpoint (50 verzoeken per minuut) 2. **HTTP 429 statuscode** bij overschrijding met Retry-After header 3. **OAuth2 authenticatie** met authorization code flow 4. **Rate limit headers** (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) 5. **Gedetailleerde documentatie** van de rate limiting regels in de endpoint beschrijving 6. **Aangepaste extensie** (`x-rate-limit-policies`) voor extra duidelijkheid over het rate limiting beleid De specificatie is volledig in het Nederlands en voldoet aan alle gestelde eisen.