Ontwikkel een OpenAPI Specificatie voor API Gegevensvalidatie en Schema Controle
description
Met deze prompt kun je een OpenAPI specificatie maken die ervoor zorgt dat je API alleen correcte en gevalideerde data accepteert. Dit voorkomt integratiefouten, verbetert de datakwaliteit en maakt de API betrouwbaarder en gemakkelijker te onderhouden. Het helpt ook ontwikkelaars om duidelijke validatie- en foutafhandelingsregels te begrijpen en toe te passen.
prompt
Help me een OpenAPI specificatie te maken die geavanceerde gegevensvalidatie en schema controles beschrijft om de datakwaliteit en interoperabiliteit van mijn API te verbeteren.
API Naam: <voer de naam van mijn API in>
Validatieregels (bijv. formaat, patroon, minimum/maximum waarden): <beschrijf de gewenste validatieregels>
Data Schema's en Types: <geef details over de ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
openapi: 3.1.0
info:
titel: Product Beheer API
versie: '1.0.0'
beschrijving: >
API voor het beheren van producten met geavanceerde gegevensvalidatie en schema controles om datakwaliteit en interoperabiliteit te verbeteren.
paths:
/producten:
post:
summary: Voeg een nieuw product toe
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
- naam
- leeftijd
- prijs
- email
properties:
id:
type: integer
beschrijving: Unieke identificatie van het product
naam:
type: string
beschrijving: Naam van het product
leeftijd:
type: integer
beschrijving: Leeftijdsindicatie voor het product
prijs:
type: number
format: decimal
minimum: 0.0000001
beschrijving: Prijs van het product, groter dan 0
email:
type: string
format: email
beschrijving: Contact email voor het product
responses:
'201':
description: Product succesvol toegevoegd
'400':
description: Validatiefouten
content:
application/json:
schema:
type: object
properties:
errorCode:
type: string
description: Code die de fout aanduidt
message:
type: string
description: Beschrijving van de validatiefout
required:
- errorCode
- message
components:
schemas:
ErrorResponse:
type: object
properties:
errorCode:
type: string
message:
type: string
required:
- errorCode
- message
security:
- []
provider: deepseek
model: deepseek-chat
Hier is een OpenAPI 3.0 specificatie in YAML voor je Product Beheer API met geavanceerde validatie:
```yaml
openapi: 3.0.0
info:
title: Product Beheer API
description: API voor het beheren van producten met geavanceerde gegevensvalidatie
version: 1.0.0
contact:
name: API Ondersteuning
email: support@voorbeeld.nl
servers:
- url: https://api.voorbeeld.nl/v1
description: Productie server
paths:
/products:
post:
summary: Maak een nieuw product aan
description: Endpoint voor het aanmaken van een nieuw product met uitgebreide validatie
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProductAanmaak'
responses:
'201':
description: Product succesvol aangemaakt
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
'400':
description: Validatiefout in request body
content:
application/json:
schema:
$ref: '#/components/schemas/ValidatieFout'
components:
schemas:
ProductAanmaak:
type: object
required:
- naam
- prijs
- email
properties:
id:
type: integer
description: Unieke identifier van het product
minimum: 1
example: 1
naam:
type: string
description: Naam van het product
minLength: 1
maxLength: 100
pattern: '^[a-zA-Z0-9\s\-_]+$'
example: "Premium Product"
prijs:
type: number
format: float
description: Prijs van het product (moet groter zijn dan 0)
minimum: 0.01
exclusiveMinimum: true
example: 29.99
email:
type: string
format: email
description: Contact email voor het product
pattern: '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
example: "contact@voorbeeld.nl"
leeftijd:
type: integer
description: Leeftijd in jaren
minimum: 0
maximum: 150
example: 25
additionalProperties: false
Product:
type: object
properties:
id:
type: integer
example: 1
naam:
type: string
example: "Premium Product"
prijs:
type: number
format: float
example: 29.99
email:
type: string
example: "contact@voorbeeld.nl"
leeftijd:
type: integer
example: 25
aangemaaktOp:
type: string
format: date-time
ValidatieFout:
type: object
properties:
errorCode:
type: string
description: Unieke code voor het type validatiefout
enum:
- VALIDATION_ERROR
- INVALID_FORMAT
- MISSING_REQUIRED_FIELD
- VALUE_OUT_OF_RANGE
example: "VALIDATION_ERROR"
message:
type: string
description: Beschrijvende foutmelding
example: "Validatiefout in request body"
details:
type: array
items:
type: object
properties:
field:
type: string
description: Naam van het veld met validatiefout
error:
type: string
description: Specifieke foutmelding voor het veld
value:
type: string
description: De waarde die de validatiefout veroorzaakte
responses:
ValidatieFoutResponse:
description: Validatiefout in request body
content:
application/json:
schema:
$ref: '#/components/schemas/ValidatieFout'
parameters:
ProductId:
name: id
in: path
required: true
schema:
type: integer
minimum: 1
description: Unieke identifier van het product
```
**Belangrijkste validatiekenmerken in deze specificatie:**
1. **Prijs validatie**:
- `type: number` + `format: float` voor decimale waarden
- `minimum: 0.01` + `exclusiveMinimum: true` zorgt voor waarden > 0
2. **Email validatie**:
- `format: email` voor standaard email validatie
- `pattern` met regex voor aanvullende controle
3. **Strikte schema validatie**:
- `required` velden voor verplichte invoer
- `additionalProperties: false` voorkomt extra velden
- `minLength`/`maxLength` voor string lengtes
- `minimum`/`maximum` voor numerieke bereiken
4. **Gestructureerde foutafhandeling**:
- Duidelijke error codes en beschrijvende messages
- Gedetailleerde informatie over validatiefouten
Deze specificatie zorgt voor robuuste gegevensvalidatie en verbetert zowel datakwaliteit als interoperabiliteit van je API.