slogan3

Creëer een OpenAPI-specificatie voor API-caching en prestatieoptimalisatie

description

Met deze prompt kan de gebruiker een OpenAPI-specificatie maken die expliciet caching en prestatieoptimalisatie beschrijft, wat helpt om de responstijden van de API te verbeteren en serverbelasting te verminderen. Dit voorkomt dat gebruikers handmatig deze complexe aspecten moeten toevoegen en zorgt voor betere documentatie en implementatie van cachingregels.

prompt

Help me een OpenAPI-specificatie te maken die cachingstrategieën en prestatieoptimalisaties beschrijft voor mijn API. API Naam: <voer de naam van mijn API in> Caching Mechanismen (bijv. server-side caching, client-side caching, CDN): <beschrijf de caching methoden> Cache Controle Headers (bijv. Cache-Control, ETag): <specificeer de headers die gebruikt worden voor cache ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
openapi: 3.0.3 info: titel: ShopAPI versie: 1.0.0 beschrijving: > API voor ShopAPI met cachingstrategieën en prestatieoptimalisaties. - Server-side caching met Memcached - Client-side caching via Cache-Control en ETag - Endpoints: /producten en /categorieën - TTL: 30 minuten (1800 seconden) - Invalideren bij databasemutaties - Authenticatie via API-sleutel servers: - url: https://api.shopapi.example.com beschrijving: Productie server components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key responses: CachingHeaders: description: > Caching headers voor endpoints met server-side en client-side caching. headers: Cache-Control: description: > Header die de caching regels aangeeft. Hier ingesteld op max-age=1800 (30 minuten). schema: type: string example: "public, max-age=1800" ETag: description: > ETag header voor cache-validatie. schema: type: string example: "W/\"123456789\"" security: - ApiKeyAuth: [] paths: /producten: get: summary: "Get lijst van producten" description: > Endpoint met server-side caching via Memcached en client-side caching. security: - ApiKeyAuth: [] responses: '200': description: "Lijst van producten" headers: Cache-Control: $ref: '#/components/responses/CachingHeaders/headers/Cache-Control' ETag: $ref: '#/components/responses/CachingHeaders/headers/ETag' content: application/json: schema: type: array items: type: object properties: id: type: integer description: "Product ID" naam: type: string description: "Naam van het product" prijs: type: number format: float description: "Prijs van het product" x-cache-ttl: 1800 # TTL in seconden x-cache-invalidation: > Invalideren bij databasemutaties voor producten. /categorieën: get: summary: "Get lijst van categorieën" description: > Endpoint met server-side caching via Memcached en client-side caching. security: - ApiKeyAuth: [] responses: '200': description: "Lijst van categorieën" headers: Cache-Control: $ref: '#/components/responses/CachingHeaders/headers/Cache-Control' ETag: $ref: '#/components/responses/CachingHeaders/headers/ETag' content: application/json: schema: type: array items: type: object properties: id: type: integer description: "Categorie ID" naam: type: string description: "Naam van de categorie" x-cache-ttl: 1800 # TTL in seconden x-cache-invalidation: > Invalideren bij databasemutaties voor categorieën. # Opmerkingen: # - Server-side caching wordt beheerd via Memcached en wordt geconfigureerd op de backend. # - Client-side caching wordt gestuurd via Cache-Control en ETag headers. # - TTL voor cache is ingesteld op 1800 seconden (30 minuten). # - Cache wordt geïnvalideerd bij mutaties in de database, zoals updates of deleties. # - Authenticatie wordt geregeld via een API-sleutel in de header X-API-Key.
provider: deepseek
model: deepseek-chat
```yaml openapi: 3.0.3 info: title: ShopAPI description: API voor winkelbeheer met geavanceerde cachingstrategieën en prestatieoptimalisaties version: 1.0.0 contact: name: API Support email: support@shopapi.com servers: - url: https://api.shopapi.com/v1 description: Productieserver components: securitySchemes: ApiKeyAuth: type: apiKey name: X-API-Key in: header description: API sleutel voor authenticatie parameters: CacheControl: name: Cache-Control in: header required: false schema: type: string description: Cache-control directives voor client-side caching ETagHeader: name: ETag in: header required: false schema: type: string description: ETag voor conditionele requests headers: CacheControlResponse: description: Cache-control header voor caching instructies schema: type: string example: "max-age=1800, public" ETagResponse: description: ETag header voor resource versie schema: type: string example: "\"abc123\"" responses: CachedResponse: description: Succesvolle response met caching headers headers: Cache-Control: $ref: '#/components/headers/CacheControlResponse' ETag: $ref: '#/components/headers/ETagResponse' content: application/json: schema: type: object security: - ApiKeyAuth: [] paths: /producten: get: summary: Haal alle producten op description: | Retourneert een lijst van alle producten met server-side caching via Memcached. Cache wordt automatisch geïnvalideerd bij databasemutaties. **Caching Details:** - Server-side: Memcached met 30 minuten TTL - Client-side: Cache-Control headers voor browser caching - Cache invalidatie: Automatisch bij wijzigingen in productdata tags: - Producten parameters: - $ref: '#/components/parameters/CacheControl' - $ref: '#/components/parameters/ETagHeader' responses: '200': $ref: '#/components/responses/CachedResponse' content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Product' metadata: $ref: '#/components/schemas/PaginationMetadata' '304': description: Niet gewijzigd (gebruik cached versie) headers: Cache-Control: $ref: '#/components/headers/CacheControlResponse' ETag: $ref: '#/components/headers/ETagResponse' '401': description: Ongeldige API sleutel '500': description: Interne serverfout /categorieën: get: summary: Haal alle categorieën op description: | Retourneert een lijst van alle productcategorieën met geoptimaliseerde caching. **Caching Strategie:** - Memcached server-side cache (30 minuten TTL) - ETag ondersteuning voor conditionele requests - Automatische cache invalidatie bij categorie wijzigingen tags: - Categorieën parameters: - $ref: '#/components/parameters/CacheControl' - $ref: '#/components/parameters/ETagHeader' responses: '200': $ref: '#/components/responses/CachedResponse' content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Categorie' '304': description: Niet gewijzigd (gebruik cached versie) headers: Cache-Control: $ref: '#/components/headers/CacheControlResponse' ETag: $ref: '#/components/headers/ETagResponse' '401': description: Ongeldige API sleutel components: schemas: Product: type: object properties: id: type: integer format: int64 example: 1 naam: type: string example: "iPhone 14" prijs: type: number format: float example: 999.99 categorie_id: type: integer example: 1 voorraad: type: integer example: 50 aangemaakt_op: type: string format: date-time bijgewerkt_op: type: string format: date-time Categorie: type: object properties: id: type: integer format: int64 example: 1 naam: type: string example: "Elektronica" omschrijving: type: string example: "Elektronische apparaten en accessoires" aangemaakt_op: type: string format: date-time bijgewerkt_op: type: string format: date-time PaginationMetadata: type: object properties: pagina: type: integer example: 1 limiet: type: integer example: 25 totaal: type: integer example: 150 heeft_volgende: type: boolean example: true x-caching-config: server_side: mechanism: "Memcached" default_ttl: 1800 endpoints: - "/producten" - "/categorieën" cache_headers: - "Cache-Control" - "ETag" cache_invalidation: strategy: "database_mutation" triggers: - "INSERT" - "UPDATE" - "DELETE" performance_optimizations: - "Response compression" - "ETag conditional requests" - "Proper cache headers" - "Database query optimization" ``` Deze OpenAPI-specificatie beschrijft uitgebreid de cachingstrategieën en prestatieoptimalisaties voor je ShopAPI. Belangrijke kenmerken: **Caching Implementatie:** - Server-side caching met Memcached (30 minuten TTL) - Cache-Control en ETag headers voor client-side caching - Automatische cache invalidatie bij databasemutaties **Beveiliging:** - API key authenticatie via header **Documentatie:** - Duidelijke beschrijvingen van caching mechanismen per endpoint - Aangepaste extensie `x-caching-config` voor caching configuratie - Response schema's voor gestructureerde data De specificatie is volledig in het Nederlands en volgt OpenAPI 3.0.3 standaarden.