slogan3

description

Met deze prompt kan ik snel een volledige en begrijpelijke API-documentatie genereren die voldoet aan de best practices. Dit helpt om mijn API toegankelijker te maken voor ontwikkelaars en vermindert vragen en fouten bij het gebruik. Het onderscheidt zich door gericht te zijn op het combineren van Swagger en Redoc functionaliteiten en het direct toepasbaar te maken voor mijn eigen API specificatie.

prompt

Help me met het creëren van heldere en gestructureerde API-documentatie voor mijn REST API. Mijn API beschrijving: <voer je API beschrijving of OpenAPI-specifi ... more ›

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hieronder vind je een basisstructuur en tips voor het creëren van heldere en gestructureerde API-documentatie voor jouw gebruikersbeheer REST API, gebaseerd op de OpenAPI-specificatie en geschikt voor tools zoals Swagger en Redoc. --- # Voorbeeld OpenAPI-specificatie voor Gebruikersbeheer API ```yaml openapi: 3.0.3 info: title: Gebruikersbeheer API versie: 1.0.0 description: > Een API voor het beheren van gebruikersgegevens, inclusief endpoints voor het ophalen, aanmaken, bijwerken en verwijderen van gebruikers. servers: - url: https://api.jouwdomein.nl/v1 components: securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT schemas: Gebruiker: type: object properties: id: type: string description: Unieke identifier van de gebruiker naam: type: string email: type: string aangemaaktOp: type: string format: date-time required: - id - naam - email security: - BearerAuth: [] paths: /gebruikers: get: summary: Lijst alle gebruikers op description: Haal een lijst op van alle geregistreerde gebruikers. responses: '200': description: Een lijst van gebruikers content: application/json: schema: type: array items: $ref: '#/components/schemas/Gebruiker' security: - BearerAuth: [] post: summary: Maak een nieuwe gebruiker aan description: Voeg een nieuwe gebruiker toe aan het systeem. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Gebruiker' example: naam: Jan Jansen email: jan.jansen@example.com responses: '201': description: Gebruiker succesvol aangemaakt content: application/json: schema: $ref: '#/components/schemas/Gebruiker' /gebruikers/{id}: get: summary: Haal gegevens van een gebruiker op description: Haal de details van een specifieke gebruiker op via ID. parameters: - name: id in: path required: true schema: type: string description: ID van de gebruiker responses: '200': description: Gebruikersgegevens content: application/json: schema: $ref: '#/components/schemas/Gebruiker' '404': description: Gebruiker niet gevonden put: summary: Werk gegevens van een gebruiker bij description: Wijzig de gegevens van een bestaande gebruiker. parameters: - name: id in: path required: true schema: type: string description: ID van de gebruiker requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Gebruiker' example: naam: Jan Jansen email: jan.jansen@nieuwemail.com responses: '200': description: Gebruiker succesvol bijgewerkt content: application/json: schema: $ref: '#/components/schemas/Gebruiker' '404': description: Gebruiker niet gevonden delete: summary: Verwijder een gebruiker description: Verwijder een gebruiker uit het systeem via ID. parameters: - name: id in: path required: true schema: type: string description: ID van de gebruiker responses: '204': description: Gebruiker succesvol verwijderd '404': description: Gebruiker niet gevonden ``` --- # Tips voor Heldere API-Documentatie 1. **Gebruik duidelijke titels en samenvattingen:** Geef korte en duidelijke uitleg van elke endpoint. 2. **Beschrijf parameters en request- en response-voorbeelden:** Hierdoor begrijpen ontwikkelaars exact wat zij moeten sturen en kunnen verwachten. 3. **Specificeer authenticatie:** Vermeld duidelijk dat Bearer JWT-token vereist is en waar deze moet worden toegevoegd (bijvoorbeeld in de Authorization-header). 4. **Gebruik voorbeeldgegevens:** Voeg voorbeelden toe voor requests en responses om de implementatie te versnellen. 5. **Structuur en consistentie:** Houd dezelfde terminologie en structuur door de hele documentatie. 6. **Publiceer en onderhoud regelmatig:** Zorg dat de documentatie up-to-date blijft bij wijzigingen in de API. --- Wil je dat ik je verder help met het uitbreiden van deze specificatie of het genereren van een volledige Swagger- of Redoc-setup?
provider: deepseek
model: deepseek-chat
Absoluut! Hier is een gestructureerde handleiding voor het opzetten van professionele API-documentatie voor jouw gebruikersbeheer-API, gebaseerd op de OpenAPI-specificatie (voorheen Swagger) en met Redoc als weergave-optie. ### Stap 1: De Basis van je OpenAPI-specificatie (openapi.yaml of openapi.json) Je documentatie begint met een goed gestructureerd OpenAPI-document. Hier is een basisvoorbeeld dat je kunt aanpassen. ```yaml openapi: 3.0.0 info: title: Gebruikersbeheer API description: |- Een robuuste REST API voor het beheren van gebruikers binnen een systeem. Deze API maakt het mogelijk om gebruikers aan te maken, op te vragen, bij te werken en te verwijderen. version: 1.0.0 contact: name: API Ondersteuning email: support@jebedrijf.nl servers: - url: https://api.jebedrijf.nl/v1 description: Productieserver - url: https://api.dev.jebedrijf.nl/v1 description: Ontwikkelserver tags: - name: Gebruikers description: Alles rondom het beheren van gebruikers paths: # Je endpoints komen hier (zie volgende stap) components: # Je herbruikbare componenten (schema's, security) komen hier (zie latere stap) ``` --- ### Stap 2: Gedetailleerde Beschrijving van Endpoints (onder `paths:`) Vervang of voeg deze sectie toe aan je `paths` in het bovenstaande document. ```yaml paths: /gebruikers: get: tags: - Gebruikers summary: Haal een lijst met alle gebruikers op description: Geeft een gepagineerde lijst terug van alle geregistreerde gebruikers in het systeem. parameters: - name: page in: query description: Paginanummer voor paginatie. required: false schema: type: integer default: 1 - name: limit in: query description: Aantal resultaten per pagina. required: false schema: type: integer default: 10 responses: '200': description: Succesvol een lijst met gebruikers opgehaald. content: application/json: schema: $ref: '#/components/schemas/GebruikersLijst' '401': $ref: '#/components/responses/NietGeautoriseerd' post: tags: - Gebruikers summary: Maak een nieuwe gebruiker aan description: Maak een nieuwe gebruiker aan in het systeem. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NieuweGebruikerInput' example: # Request Body Voorbeeld { "email": "nieuwe.gebruiker@voorbeeld.nl", "wachtwoord": "SterkWachtwoord123!", "naam": "Jan Jansen", "rol": "gebruiker" } responses: '201': description: Gebruiker succesvol aangemaakt. content: application/json: schema: $ref: '#/components/schemas/Gebruiker' '400': description: Ongeldig invoer. Bijv. ontbrekende velden of ongeldig e-mailformaat. /gebruikers/{id}: get: tags: - Gebruikers summary: Haal een specifieke gebruiker op description: Haal de details van één specifieke gebruiker op op basis van hun ID. parameters: - name: id in: path required: true description: Unieke identifier van de gebruiker. schema: type: string format: uuid responses: '200': description: Succesvol de gebruiker opgehaald. content: application/json: schema: $ref: '#/components/schemas/Gebruiker' '404': description: Een gebruiker met het opgegeven ID kon niet worden gevonden. put: tags: - Gebruikers summary: Werk een gebruiker bij description: Werk de gegevens van een bestaande gebruiker bij. parameters: - name: id in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BijgewerkteGebruikerInput' example: # Request Body Voorbeeld { "naam": "Jan de Vries", "rol": "beheerder" } responses: '200': description: Gebruiker succesvol bijgewerkt. content: application/json: schema: $ref: '#/components/schemas/Gebruiker' '404': description: Een gebruiker met het opgegeven ID kon niet worden gevonden. delete: tags: - Gebruikers summary: Verwijder een gebruiker description: Verwijder een gebruiker permanent uit het systeem. parameters: - name: id in: path required: true schema: type: string format: uuid responses: '204': description: Gebruiker succesvol verwijderd. Er wordt geen content teruggegeven. '404': description: Een gebruiker met het opgegeven ID kon niet worden gevonden. ``` --- ### Stap 3: Definieer Schema's en Response Voorbeelden (onder `components:`) Voeg deze componenten toe aan je document om de herbruikbare onderdelen te definiëren. ```yaml components: schemas: # INPUT SCHEMA'S NieuweGebruikerInput: type: object required: - email - wachtwoord - naam properties: email: type: string format: email example: voorbeeld@email.nl wachtwoord: type: string format: password example: EenVeiligWachtwoord!123 minLength: 8 naam: type: string example: Marieke Smit rol: type: string enum: [gebruiker, beheerder, admin] default: gebruiker BijgewerkteGebruikerInput: type: object properties: naam: type: string example: Marieke de Vries-Smit rol: type: string enum: [gebruiker, beheerder, admin] # OUTPUT SCHEMA'S Gebruiker: type: object properties: id: type: string format: uuid example: "123e4567-e89b-12d3-a456-426614174000" email: type: string format: email example: voorbeeld@email.nl naam: type: string example: Marieke Smit rol: type: string example: beheerder aangemaaktOp: type: string format: date-time example: "2023-10-05T14:30:00Z" GebruikersLijst: type: object properties: gebruikers: type: array items: $ref: '#/components/schemas/Gebruiker' paginatie: $ref: '#/components/schemas/Paginatie' Paginatie: type: object properties: huidigePagina: type: integer example: 1 totaalPaginas: type: integer example: 5 totaalGebruikers: type: integer example: 42 responses: NietGeautoriseerd: description: | Verzoek niet geautoriseerd. Het access token ontbreekt, is ongeldig of is verlopen. content: application/json: schema: type: object properties: error: type: string example: "Unauthorized" message: type: string example: "Authenticatie is vereist om toegang te krijgen tot deze resource." securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT description: > Voer je JWT token in. Gebruik het format **Bearer &lt;JWT&gt;**. Verkrijg een token via het inlog-endpoint. ``` --- ### Stap 4: Authenticatie Vereisten Globaal Instellen Voeg aan de **root** van je OpenAPI document (meestal onder `info`) een globale security directive toe. ```yaml # ... (info, servers, tags) security: - BearerAuth: [] # Dit maakt authenticatie voor ALLE endpoints verplicht. # Je kunt dit ook per endpoint overschrijven door een lege array `security: []` te gebruiken. ``` --- ### Stap 5: De Documentatie Genereren en Weergeven Kies een van de volgende tools om je `openapi.yaml` bestand tot leven te brengen. **Optie A: Swagger UI (Interactief en voor ontwikkeling)** Swagger UI is perfect om je API interactief te testen. 1. **Installeer de package:** `npm install swagger-ui-express` 2. **Server setup (Node.js/Express voorbeeld):** ```javascript const express = require('express'); const swaggerUi = require('swagger-ui-express'); const YAML = require('yamljs'); const app = express(); const openApiDocumentatie = YAML.load('./openapi.yaml'); // Laad je YAML bestand app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(openApiDocumentatie)); app.listen(3000, () => console.log('Server draait op http://localhost:3000')); ``` 3. Bezoek `http://localhost:3000/api-docs`. **Optie B: Redoc (Schoon en voor eindgebruikers)** Redoc biedt een zeer schone, statische en gebruiksvriendelijke weergave. 1. **Gebruik de Redoc CLI:** `npm install -g redoc-cli` 2. **Genereer een standalone HTML file:** ```bash redoc-cli bundle openapi.yaml --output doc.html ``` 3. Open het gegenereerde `doc.html` bestand in je browser of host het statisch. **Optie C: Online Editors (Snel en eenvoudig)** * **Swagger Editor:** https://editor.swagger.io/ - Plak je YAML code om een live voorbeeld te zien en valideren. * **Redocly Demo:** https://redocly.github.io/redoc/ - Werkt ook door je raw YAML content te plakken. ### Belangrijke Tips voor Heldere Documentatie 1. **Wees Consistent:** Houd dezelfde terminologie en structuur aan in alle endpointbeschrijvingen. 2. **Gebruik Voorbeelden Rijkelijk:** Zoals hierboven getoond, zijn `example` velden onmisbaar voor begrip. 3. **Documenteer Foutscenarios:** Beschrijf niet alleen succes (200), maar ook veelvoorkomende fouten (400, 401, 403, 404, 500). 4. **Valideer je Specificatie:** Gebruik de Swagger Editor of een validator om syntaxfouten in je YAML/JSON te vinden. Met deze structuur heb je een complete, professionele en zeer duidelijke API-documentatie die zowel voor ontwikkelaars als eindgebruikers begrijpelijk is.