Help me een gedetailleerde OpenAPI-specificatie te maken die de prestatietargets voor mijn API beschrijft.
description
Door prestatietargets te definiëren, kunnen gebruikers beter begrijpen hoe ze hun API kunnen optimaliseren voor snelheid en betrouwbaarheid, wat leidt tot een verbeterde gebruikerservaring en operationele efficiëntie.
prompt
try_prompt
Ik heb hulp nodig bij het opstellen van een uitgebreide OpenAPI-specificatie die zich richt op de prestatietargets van mijn API. Voeg alstublieft de volgende details toe: API-naam: {{api_naam}}, Kritieke Pre ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een uitgebreide OpenAPI-specificatie voor jouw WeerAPI, inclusief de door jou gevraagde prestatietargets en monitoringdetails:
```yaml
openapi: 3.0.3
info:
title: WeerAPI
version: '1.0.0'
description: >
API voor het ophalen van weersinformatie met prestatiegerichte specificaties en monitoring.
servers:
- url: https://api.weerapi.com/v1
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
responses:
Unauthorized:
description: Ongeldig of ontbrekend API-sleutel
OK:
description: Succesvolle reactie
security:
- ApiKeyAuth: []
paths:
/weer:
get:
summary: Haal actuele weersinformatie op
description: >
Deze endpoint retourneert actuele weersgegevens. Het is belangrijk dat de responsetijd onder de 250ms blijft en dat de API voldoet aan de kritieke prestatie-indicator van 200ms.
parameters:
- in: query
name: locatie
schema:
type: string
required: true
description: Naam of coordinates van de locatie waarvoor het weer wordt opgevraagd
responses:
'200':
$ref: '#/components/responses/OK'
'401':
$ref: '#/components/responses/Unauthorized'
security:
- ApiKeyAuth: []
# Prestatie targets en monitoring
x-performance:
kritieke_prestatie_indicator_ms: 200
reactietijddoelen_ms: 250
monitoringhulpmiddelen:
- Prometheus
```
Belangrijke punten:
- De API heet "WeerAPI".
- De kritieke KPI is ingesteld op 200ms.
- Reactietijddoel is minder dan 250ms.
- Authenticatie gebeurt via een API-sleutel in de header (X-API-KEY).
- Monitoring wordt ondersteund door Prometheus.
- Deze specificatie geeft een basisendpoint `/weer` voor actuele weersinformatie.
Wil je dat ik nog meer endpoints toevoeg of de specificatie verder uitbreid?
provider: deepseek
model: deepseek-chat
Zeker, hier is een uitgebreide OpenAPI 3.0-specificatie voor je WeerAPI met focus op prestatiedoelen:
```yaml
openapi: 3.0.0
info:
title: WeerAPI
description: API voor weergegevens met prestatiemonitoring
version: 1.0.0
contact:
name: API Ondersteuning
email: support@weerapi.nl
# Prestatiegerelateerde metadata
x-performance-targets:
kritieke-prestatie-indicatoren:
reactietijd: 200ms
beschikbaarheid: 99.9%
reactietijd-doelen:
p95: < 250ms
p99: < 500ms
monitoring:
tools:
- Prometheus
metrics:
- http_request_duration_seconds
- http_requests_total
- error_rate
servers:
- url: https://api.weer.nl/v1
description: Productie server
paths:
/weer/actueel:
get:
summary: Haal actuele weergegevens op
description: |
Retourneert actuele weergegevens voor een specifieke locatie.
**Prestatiedoel:** Reactietijd < 250ms (P95)
Monitoring via Prometheus metrics:
- weerapi_request_duration_seconds
- weerapi_requests_total{endpoint="actueel"}
parameters:
- name: stad
in: query
required: true
schema:
type: string
description: Naam van de stad
- name: land
in: query
schema:
type: string
default: NL
description: Landcode
responses:
'200':
description: Succesvolle response binnen prestatie doelen
headers:
X-Response-Time:
description: Actuele response tijd in milliseconden
schema:
type: integer
example: 185
content:
application/json:
schema:
$ref: '#/components/schemas/WeerData'
'400':
description: Ongeldige request parameters
'429':
description: Rate limit overschreden
'500':
description: Server error - mogelijk prestatie issue
security:
- apiKey: []
/weer/voorspelling:
get:
summary: Weersvoorspelling voor komende dagen
description: |
Retourneert weersvoorspelling voor de komende 5 dagen.
**Prestatiedoel:** Reactietijd < 250ms (P95)
parameters:
- name: stad
in: query
required: true
schema:
type: string
- name: dagen
in: query
schema:
type: integer
minimum: 1
maximum: 7
default: 5
responses:
'200':
description: Succesvolle response
content:
application/json:
schema:
$ref: '#/components/schemas/Voorspelling'
security:
- apiKey: []
/metrics:
get:
summary: Prometheus metrics endpoint
description: |
Intern endpoint voor Prometheus monitoring.
Toont prestatiemetrics zoals response tijden en foutpercentages.
responses:
'200':
description: Prometheus metrics data
content:
text/plain:
example: |
# HELP weerapi_request_duration_seconds HTTP request duration in seconds
# TYPE weerapi_request_duration_seconds histogram
weerapi_request_duration_seconds_bucket{le="0.1"} 1234
weerapi_request_duration_seconds_bucket{le="0.25"} 5678
security: []
components:
schemas:
WeerData:
type: object
properties:
stad:
type: string
temperatuur:
type: number
format: float
eenheid:
type: string
enum: [celsius, fahrenheit]
beschrijving:
type: string
vochtigheid:
type: integer
windsnelheid:
type: number
timestamp:
type: string
format: date-time
Voorspelling:
type: object
properties:
stad:
type: string
voorspellingen:
type: array
items:
$ref: '#/components/schemas/DagVoorspelling'
DagVoorspelling:
type: object
properties:
datum:
type: string
format: date
max_temp:
type: number
min_temp:
type: number
beschrijving:
type: string
securitySchemes:
apiKey:
type: apiKey
name: X-API-Key
in: header
description: API sleutel voor authenticatie
responses:
PerformanceWarning:
description: Response tijd benadert prestatie limieten
headers:
X-Performance-Warning:
description: Waarschuwing voor prestatie degradatie
schema:
type: string
example: "Response tijd > 200ms gedetecteerd"
# Aangepaste extensies voor prestatie monitoring
x-monitoring-config:
prometheus:
scrape_interval: 15s
metrics:
- name: response_time
help: "API response tijd in milliseconden"
type: histogram
buckets: [50, 100, 150, 200, 250, 500]
- name: error_rate
help: "Foutpercentage per endpoint"
type: counter
alerts:
- name: "Hoge response tijd"
condition: "response_time > 250"
severity: "warning"
- name: "Kritieke prestatie degradatie"
condition: "response_time > 500"
severity: "critical"
```
**Belangrijkste prestatiekenmerken in deze specificatie:**
1. **KPI Monitoring**: 200ms reactietijd als kritieke indicator
2. **Reactietijd Doelen**: P95 < 250ms expliciet gedocumenteerd
3. **Prometheus Integration**: Dedicated /metrics endpoint en custom metrics
4. **Performance Headers**: X-Response-Time header voor real-time monitoring
5. **Alerting Framework**: Vooraf gedefinieerde alert voorwaarden
6. **Security**: API Key authenticatie zoals gespecificeerd
Deze specificatie kan direct worden gebruikt in API gateways en monitoring tools zoals Prometheus voor prestatiebewaking.

