Optimaliseer mijn REST API-documentatie met Swagger of Redoc
description
Met deze prompt ontvang ik gerichte aanbevelingen om mijn REST API-documentatie te optimaliseren, waardoor ontwikkelaars sneller begrijpen hoe ze mijn API kunnen gebruiken. Het helpt me om mijn documentatie gestructureerd en compleet te maken, wat ondersteuning en adoptie bevordert. Dit is effectiever dan algemene tips omdat het direct toegepast wordt op mijn eigen documentatie.
prompt
Help mij met het verbeteren van mijn REST API-documentatie door best practices toe te passen op mijn huidige documentatie. Mijn documentatie formaat: <kies Swagger of Redoc>. Mijn API beschrijving (bijvoorbeeld een link naar mijn OpenAPI-spe ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier zijn concrete aanbevelingen om jouw Swagger/OpenAPI-documentatie te verbeteren op het gebied van leesbaarheid, volledigheid en structuur:
1. Verbeter de beschrijvingen en documentatie:
- Voeg uitgebreide beschrijvingen toe voor je API en endpoints zodat ontwikkelaars het doel en gebruik kunnen begrijpen.
- Bijvoorbeeld:
```yaml
info:
title: Voorbeeld API
version: 1.0.0
description: >
Deze API biedt toegang tot een lijst van items. Gebruik deze endpoints om items op te halen, toe te voegen, te verwijderen of bij te werken.
```
2. Documenteer alle HTTP-methoden en endpoints volledig:
- Voeg voor elk endpoint niet alleen de methoden toe, maar ook parameters, request bodies, en mogelijke statuscodes.
- Bijvoorbeeld voor `/items`:
```yaml
paths:
/items:
get:
summary: Haal alle items op
description: >
Deze endpoint retourneert een lijst van alle beschikbare items.
responses:
'200':
description: Succesvol ophalen van items
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Item'
'500':
description: Serverfout
```
3. Voeg schema’s en datamodellen toe:
- Definieer duidelijk de structuur van je data met `components/schemas`.
- Bijvoorbeeld:
```yaml
components:
schemas:
Item:
type: object
properties:
id:
type: integer
description: Unieke identifier van het item
naam:
type: string
description: Naam van het item
required:
- id
- naam
```
4. Gebruik duidelijke en consistente terminologie:
- Vermijd afkortingen of jargon tenzij ze algemeen bekend zijn.
- Zorg dat beschrijvingen duidelijk aangeven wat elke parameter of response betekent.
5. Voeg voorbeeldwaarden toe:
- Voor parameters en responses maak gebruik van `example` of `examples` om ontwikkelaars een idee te geven van de verwachte data.
- Bijvoorbeeld:
```yaml
parameters:
limit:
name: limit
in: query
description: Aantal items om op te halen
required: false
schema:
type: integer
default: 10
example: 5
```
6. Documenteer foutstatussen en foutmeldingen:
- Geef aan welke foutcodes mogelijk zijn en wat de oorzaken kunnen zijn.
- Bijvoorbeeld:
```yaml
responses:
'404':
description: Item niet gevonden
'400':
description: Ongeldige aanvraag
```
7. Zorg voor consistent gebruik van taal en stijl:
- Gebruik bijvoorbeeld altijd dezelfde formulering voor beschrijvingen en summaries.
8. Gebruik tags voor betere organisatie:
- Groepeer endpoints onder logische categorieën met `tags`.
- Bijvoorbeeld:
```yaml
tags:
- Items
```
9. Voeg versiebeheer en changelog toe:
- Documenteer wijzigingen en updates in je API.
10. Validatie en tools:
- Gebruik Swagger Editor of andere validators om je documentatie te controleren op fouten en consistentie.
Kort samengevat:
- Voeg uitgebreide beschrijvingen en context toe.
- Documenteer alle parameters, request- en response-gegevens.
- Gebruik schema’s en voorbeelden.
- Geef foutcodes en mogelijke responses duidelijk aan.
- Organiseer je documentatie logisch met tags en secties.
Door deze best practices toe te passen wordt je Swagger-documentatie niet alleen vollediger, maar ook veel gebruiksvriendelijker en makkelijker te begrijpen voor ontwikkelaars.
provider: deepseek
model: deepseek-chat
Zeker, ik help je graag met het verbeteren van je REST API-documentatie. Hier is een analyse en concrete aanbevelingen op basis van je huidige Swagger/OpenAPI-specificatie:
## Analyse huidige documentatie
**Sterke punten:**
- Basisstructuur van OpenAPI 3.0.0 is correct
- Eenvoudige en duidelijke paddefinitie
**Verbeterpunten:**
- ⚠️ Zeer beperkte informatievoorziening
- ⚠️ Ontbreekt essentiële metadata
- ⚠️ Geen parameterbeschrijvingen
- ⚠️ Geen voorbeelden of schemadefinities
- ⚠️ Geen foutresponses gedefinieerd
## Concrete aanbevelingen voor verbetering
### 1. Verbeter de API metadata
```json
{
"openapi": "3.0.0",
"info": {
"title": "Voorbeeld API",
"version": "1.0.0",
"description": "API voor het beheren van items in het systeem",
"contact": {
"name": "API Ondersteuning",
"email": "support@voorbeeld.nl"
},
"license": {
"name": "MIT",
"url": "https://opensource.org/licenses/MIT"
}
},
"servers": [
{
"url": "https://api.voorbeeld.nl/v1",
"description": "Productie server"
}
]
}
```
### 2. Uitgebreide endpoint documentatie
```json
{
"/items": {
"get": {
"summary": "Haal items op",
"description": "Retourneert een lijst met alle beschikbare items. Ondersteunt paginering en filtering.",
"tags": ["Items"],
"parameters": [
{
"name": "limit",
"in": "query",
"description": "Maximum aantal items om terug te geven",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 10
}
},
{
"name": "offset",
"in": "query",
"description": "Aantal items om over te slaan voor paginering",
"required": false,
"schema": {
"type": "integer",
"minimum": 0,
"default": 0
}
}
],
"responses": {
"200": {
"description": "Succesvolle operatie - lijst met items geretourneerd",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Item"
}
},
"example": [
{
"id": 1,
"name": "Voorbeeld item",
"description": "Dit is een voorbeeld item"
}
]
}
}
},
"400": {
"description": "Ongeldig verzoek - controleer de parameters",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Interne serverfout",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
}
}
```
### 3. Voeg components sectie toe
```json
{
"components": {
"schemas": {
"Item": {
"type": "object",
"required": ["id", "name"],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "Unieke identifier van het item"
},
"name": {
"type": "string",
"description": "Naam van het item",
"maxLength": 100
},
"description": {
"type": "string",
"description": "Beschrijving van het item",
"maxLength": 500
}
}
},
"Error": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Foutcode"
},
"message": {
"type": "string",
"description": "Foutboodschap"
},
"details": {
"type": "string",
"description": "Extra foutdetails"
}
}
}
},
"securitySchemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}
}
}
}
```
### 4. Voeg security definitie toe
```json
{
"security": [
{
"BearerAuth": []
}
]
}
```
## Aanvullende best practices
1. **Gebruik tags** om endpoints logisch te groeperen
2. **Voeg voorbeelden toe** voor alle requests en responses
3. **Documenteer alle parameters** met type, formaat en constraints
4. **Definieer foutresponses** voor alle mogelijke HTTP statuscodes
5. **Gebruik $ref** voor hergebruik van componenten
6. **Voeg security schema's toe** als je API beveiliging vereist
7. **Overweeg externalDocs** voor aanvullende documentatie
Door deze verbeteringen door te voeren, wordt je documentatie veel completer, duidelijmer en gebruiksvriendelijker voor ontwikkelaars.