slogan3

Genereer een OpenAPI Specificatie voor Geautomatiseerde API Mocking met Geavanceerde Scenariosimulatie

description

Met deze prompt kan de gebruiker een OpenAPI specificatie genereren die geavanceerde mocking scenario's ondersteunt, wat het mogelijk maakt om complexe tests uit te voeren zonder een werkende backend. Dit voorkomt integratiefouten vroegtijdig en versnelt de ontwikkelingscyclus. Het biedt meer flexibiliteit dan standaard mockserver generatie omdat het specifieke testcases en foutscenario's kan simuleren.

prompt

Help me een OpenAPI specificatie te maken die geavanceerde mocking scenarios ondersteunt, zoals foutafhandeling, vertragingen, en dynamische responsaanpassing. API Naam: <voer de naam van mijn API in> Mocking Scenario's (bijv. foutcodes, time ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
openapi: 3.0.3 info: titel: Winkelwagen API versie: '1.0.0' servers: - url: https://api.example.com/winkelwagen description: Productie server components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key responses: SuccessResponse: description: Succesvolle respons content: application/json: schema: type: object properties: message: type: string example: "Winkelwagen succesvol opgehaald" data: type: object description: "Dynamische winkelwagen data" properties: items: type: array items: type: object properties: product_id: type: string example: "12345" naam: type: string example: "Productnaam" hoeveelheid: type: integer example: 2 prijs: type: number format: float example: 19.99 ServerErrorResponse: description: Interne server fout content: application/json: schema: type: object properties: error: type: string example: "Interne serverfout" TimeoutResponse: description: Timeout respons content: application/json: schema: type: object properties: error: type: string example: "Request timeout" paths: /: get: summary: Haal winkelwagen op security: - ApiKeyAuth: [] responses: '200': description: Succesvolle respons met winkelwagen data content: application/json: schema: $ref: '#/components/responses/SuccessResponse' examples: default: value: message: "Winkelwagen succesvol opgehaald" data: items: - product_id: "12345" naam: "Product A" hoeveelheid: 2 prijs: 19.99 '500': description: Interne serverfout met vertraging content: application/json: schema: $ref: '#/components/responses/ServerErrorResponse' headers: Retry-After: description: Tijd in seconden voordat je opnieuw probeert schema: type: integer example: 2 examples: default: value: error: "Interne serverfout" x-mock: scenario: error_with_delay delay: 2s response: 500 'timeout': description: Scenario van time-out content: application/json: schema: $ref: '#/components/responses/TimeoutResponse' x-mock: scenario: timeout timeout: true x-mock-scenarios: - name: error_with_delay description: Mock voor 500 fout met 2 seconden vertraging responses: '500': delay: 2000 # in milliseconden body: error: "Interne serverfout" - name: timeout description: Mock voor time-out scenario responses: 'timeout': timeout: true # Opmerking: Sommige mock-tools ondersteunen custom x-parameters voor scenario's, vertragingen en time-outs. # Pas deze indien nodig aan op basis van de gebruikte mocking tool.
provider: deepseek
model: deepseek-chat
```yaml openapi: 3.0.3 info: title: Winkelwagen API description: API voor het beheren van winkelwagens met geavanceerde mocking ondersteuning version: 1.0.0 contact: name: API Support email: support@winkelwagenapi.nl servers: - url: https://api.winkelwagen.nl/v1 description: Productieserver - url: https://mock.winkelwagen.nl/v1 description: Mock server met geavanceerde scenarios components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key description: API key voor authenticatie schemas: Winkelwagen: type: object properties: id: type: string format: uuid example: "123e4567-e89b-12d3-a456-426614174000" gebruikerId: type: string example: "gebruiker-123" items: type: array items: $ref: '#/components/schemas/WinkelwagenItem' totaalPrijs: type: number format: float example: 99.99 aangemaaktOp: type: string format: date-time bijgewerktOp: type: string format: date-time WinkelwagenItem: type: object properties: productId: type: string example: "prod-456" naam: type: string example: "Smartphone" hoeveelheid: type: integer minimum: 1 example: 2 eenheidsprijs: type: number format: float example: 499.99 FoutResponse: type: object properties: error: type: object properties: code: type: string example: "INTERNAL_ERROR" message: type: string example: "Er is een interne serverfout opgetreden" timestamp: type: string format: date-time security: - ApiKeyAuth: [] paths: /winkelwagens: get: summary: Haal alle winkelwagens op description: | Mocking scenarios: - 200 OK: Standaard succesvolle response - 500 Internal Server Error: Met 2 seconden vertraging - Time-out: Simuleert een time-out scenario responses: '200': description: Succesvolle response headers: X-Request-ID: schema: type: string content: application/json: schema: type: object properties: winkelwagens: type: array items: $ref: '#/components/schemas/Winkelwagen' paginering: type: object properties: pagina: type: integer totaal: type: integer x-mock-examples: - name: "Standaard succes" description: "Normale 200 OK response" statusCode: 200 - name: "Vertraagde fout" description: "500 error met 2s vertraging" statusCode: 500 delay: 2000 - name: "Time-out scenario" description: "Simuleert time-out" statusCode: 504 delay: 10000 '500': description: Interne serverfout content: application/json: schema: $ref: '#/components/schemas/FoutResponse' examples: vertraagdeFout: summary: Vertraagde interne fout value: error: code: "INTERNAL_ERROR" message: "Er is een interne serverfout opgetreden. Probeer het later opnieuw." timestamp: "2024-01-15T10:30:00Z" x-mock-delay: 2000 post: summary: Maak een nieuwe winkelwagen aan requestBody: required: true content: application/json: schema: type: object required: - gebruikerId properties: gebruikerId: type: string example: "gebruiker-123" initieleItems: type: array items: $ref: '#/components/schemas/WinkelwagenItem' responses: '201': description: Winkelwagen succesvol aangemaakt content: application/json: schema: $ref: '#/components/schemas/Winkelwagen' '400': description: Ongeldige aanvraag '500': description: Interne serverfout x-mock-scenarios: - name: "Vertraagde 500 fout" condition: "random(0.2)" # 20% kans op deze response statusCode: 500 delay: 2000 response: error: code: "CREATION_FAILED" message: "Kon winkelwagen niet aanmaken" /winkelwagens/{winkelwagenId}: parameters: - name: winkelwagenId in: path required: true schema: type: string format: uuid get: summary: Haal specifieke winkelwagen op responses: '200': description: Winkelwagen gevonden content: application/json: schema: $ref: '#/components/schemas/Winkelwagen' examples: dynamischeData: summary: Dynamische response met variabele data value: id: "{{$randomUUID}}" gebruikerId: "gebruiker-{{$randomInt 100 999}}" items: - productId: "prod-{{$randomInt 1 100}}" naam: "Product {{$randomInt 1 50}}" hoeveelheid: "{{$randomInt 1 5}}" eenheidsprijs: "{{$randomFloat 10 500 2}}" totaalPrijs: "{{$randomFloat 50 1000 2}}" aangemaaktOp: "{{$datetime 'yyyy-MM-ddTHH:mm:ss' 'UTC'}}" bijgewerktOp: "{{$datetime 'yyyy-MM-ddTHH:mm:ss' 'UTC'}}" '404': description: Winkelwagen niet gevonden '500': description: Interne serverfout x-mock-scenarios: - name: "Vertraagde serverfout" condition: "header.X-Force-Error == 'true'" statusCode: 500 delay: 2000 put: summary: Werk winkelwagen bij requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Winkelwagen' responses: '200': description: Winkelwagen succesvol bijgewerkt content: application/json: schema: $ref: '#/components/schemas/Winkelwagen' '500': description: Interne serverfout x-mock-scenarios: - name: "Time-out bij update" condition: "body.items.length > 10" # Time-out bij grote updates statusCode: 504 delay: 5000 delete: summary: Verwijder winkelwagen responses: '204': description: Winkelwagen succesvol verwijderd '500': description: Interne serverfout x-mock-scenarios: - name: "Vertraagde verwijderfout" condition: "random(0.1)" # 10% kans op fout statusCode: 500 delay: 2000 /winkelwagens/{winkelwagenId}/items: parameters: - name: winkelwagenId in: path required: true schema: type: string format: uuid post: summary: Voeg item toe aan winkelwagen requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WinkelwagenItem' responses: '201': description: Item succesvol toegevoegd content: application/json: schema: $ref: '#/components/schemas/Winkelwagen' '500': description: Interne serverfout x-mock-scenarios: - name: "Vertraagde toevoegfout" condition: "body.hoeveelheid > 10" # Fout bij grote hoeveelheden statusCode: 500 delay: 2000 x-mock-config: globalDelay: min: 100 max: 1000 scenarios: - name: "happy-path" description: "Standaard succesvolle responses" default: true - name: "error-scenario" description: "Simuleert foutscenarios met vertragingen" parameters: errorRate: 0.3 delay: 2000 - name: "timeout-scenario" description: "Simuleert time-out scenarios" parameters: timeoutRate: 0.1 timeoutDelay: 10000 ```