Creëer een OpenAPI Specificatie voor API Toegankelijkheid en Inclusiviteit
description
Met deze prompt kun je een OpenAPI specificatie creëren die expliciet rekening houdt met toegankelijkheid en inclusiviteit, waardoor je API breder inzetbaar en gebruiksvriendelijker wordt. Dit lost het probleem op van ontoegankelijke API's en vergroot de doelgroep. Het is beter dan standaard specificaties omdat het inclusieve ontwerpprincipes integreert, wat tegenwoordig essentieel is voor moderne API's.
prompt
Help me een OpenAPI specificatie te ontwerpen die expliciet toegankelijkheid en inclusiviteitsrichtlijnen integreert om mijn API bruikbaar te maken voor een breed scala aan gebruikers.
API Naam: <voer de naam van mijn API in>
Toegankelijkheidsrichtlijnen (bijv. WCAG, ARIA): <beschrijf de richtlijnen die gevolgd moeten worden>
Inclusiviteitsvereisten (bijv. meertali ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
openapi: 3.1.0
info:
title: Weer API
versie: 1.0.0
beschrijving: >
Een Weer API met expliciete toegankelijkheids- en inclusiviteitsrichtlijnen geïntegreerd.
Deze specificatie documenteert het gebruik van WCAG 2.1 richtlijnen en meertalige ondersteuning.
contact:
naam: Support Team
email: support@weerapi.nl
servers:
- url: https://api.weerapi.nl/v1
beschrijving: Productie server
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
Gebruiker:
type: object
properties:
id:
type: string
description: Unieke identificatie van de gebruiker
naam:
type: string
description: Naam van de gebruiker
taal:
type: string
description: Taalcode van de gebruiker, bijvoorbeeld 'nl', 'en', 'de'
Bericht:
type: object
properties:
id:
type: string
description: Unieke bericht ID
inhoud:
type: string
description: Inhoud van het bericht
taal:
type: string
description: Taalcode van het bericht, bijvoorbeeld 'nl', 'en', 'de'
timestamp:
type: string
format: date-time
description: Datum en tijd van het bericht
security:
- BearerAuth: []
tags:
- name: Toegankelijkheid
description: >
Richtlijnen voor toegankelijkheid volgens WCAG 2.1, inclusief ondersteuning voor schermlezers, toetsenbordgebruik en duidelijke visuele elementen.
- name: Inclusiviteit
description: >
Ondersteuning voor meertaligheid en diverse gegevensformaten om inclusiviteit te waarborgen.
paths:
/gebruikers:
get:
tags:
- Toegankelijkheid
- Inclusiviteit
summary: Haal de lijst van gebruikers op
description: >
Retourneert een lijst met gebruikers. De API ondersteunt meertalige antwoorden afhankelijk van de 'Accept-Language' header.
security:
- BearerAuth: []
parameters:
- in: header
name: Authorization
schema:
type: string
description: Bearer token voor authenticatie
required: true
- in: header
name: Accept-Language
schema:
type: string
description: >
Voorkeurstaal voor de respons, bijvoorbeeld 'nl', 'en', 'de'. Dit bevordert meertalige ondersteuning.
required: false
example: 'nl'
responses:
'200':
description: Lijst van gebruikers in de gevraagde taal
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Gebruiker'
examples:
nl:
summary: Nederlandse lijst
value: [
{ "id": "1", "naam": "Jan Jansen", "taal": "nl" },
{ "id": "2", "naam": "Anna de Boer", "taal": "nl" }
]
en:
summary: Engelse lijst
value: [
{ "id": "1", "naam": "John Johnson", "taal": "en" },
{ "id": "2", "naam": "Anna the Farmer", "taal": "en" }
]
'401':
description: Niet geautoriseerd
'403':
description: Toegang geweigerd
/berichten:
post:
tags:
- Toegankelijkheid
- Inclusiviteit
summary: Plaats een nieuw bericht
description: >
Plaatst een nieuw bericht. De inhoud en taal kunnen variëren om inclusiviteit te ondersteunen.
security:
- BearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/bericht'
examples:
nl:
summary: Nieuw bericht in het Nederlands
value:
inhoud: "Hallo, hoe gaat het?"
taal: "nl"
en:
summary: New message in English
value:
inhoud: "Hello, how are you?"
taal: "en"
responses:
'201':
description: Bericht succesvol geplaatst
content:
application/json:
schema:
$ref: '#/components/schemas/bericht'
'400':
description: Ongeldige invoer
'401':
description: Niet geautoriseerd
'403':
description: Toegang geweigerd
# Toelichting toegankelijkheid en inclusiviteit
x-kenmerken:
toegankelijkheid:
richtlijnen: WCAG 2.1
toelichting: >
De API ondersteunt toegankelijkheid door duidelijke documentatie, meertalige communicatie en het gebruik van toegankelijke dataformaten.
inclusiviteit:
richtlijnen: >
Ondersteuning voor meerdere talen via 'Accept-Language' headers en diverse gegevensformaten, waardoor gebruikers uit verschillende regio's en met verschillende voorkeuren worden bediend.
```
provider: deepseek
model: deepseek-chat
```yaml
openapi: 3.0.3
info:
title: Weer API
description: |
# Toegankelijkheid en Inclusiviteit
Deze API is ontworpen volgens WCAG 2.1 richtlijnen om toegankelijkheid te garanderen voor alle gebruikers, inclusief mensen met beperkingen.
## Toegankelijkheidsfuncties:
- Semantische en gestructureerde responsformaten
- Duidelijke foutmeldingen met suggesties
- Ondersteuning voor screen readers
- Tastbaar contrast in documentatie
- Toetsenbordnavigatie ondersteuning
## Inclusiviteitsfuncties:
- Meertalige ondersteuning (Nederlands, Engels, Frans, Duits)
- Cultureel neutrale datums en tijdzones
- Diverse gegevensrepresentatie
- Flexibele authenticatiemethoden
version: 1.0.0
contact:
name: Toegankelijkheidsteam
email: toegankelijkheid@weer-api.nl
x-inclusivity-statement: |
Onze API streeft naar volledige toegankelijkheid en inclusiviteit voor alle gebruikers,
ongezien hun vaardigheden, taal of culturele achtergrond.
servers:
- url: https://api.weer.nl/v1
description: Productie server
- url: https://dev.api.weer.nl/v1
description: Ontwikkelings server
paths:
/gebruikers:
get:
summary: Haal gebruikersgegevens op
description: |
Retourneert gebruikersinformatie met toegankelijke formattering.
**Toegankelijkheidsfuncties:**
- Gestructureerde JSON respons
- Alt-teksten voor afbeeldingen
- Duidelijke veldbeschrijvingen
operationId: getGebruikers
tags:
- Gebruikers
security:
- bearerAuth: []
parameters:
- name: Accept-Language
in: header
required: false
description: |
Taal voorkeur voor respons (nl, en, fr, de).
Standaard: nl
schema:
type: string
enum: [nl, en, fr, de]
default: nl
- name: formaat
in: query
required: false
description: |
Gewenst responsformaat voor toegankelijkheid.
json - Standaard JSON formaat
xml - XML formaat voor bepaalde screen readers
schema:
type: string
enum: [json, xml]
default: json
responses:
'200':
description: Succesvolle operatie
content:
application/json:
schema:
$ref: '#/components/schemas/GebruikersResponse'
application/xml:
schema:
$ref: '#/components/schemas/GebruikersResponse'
headers:
Content-Language:
description: Taal van de respons
schema:
type: string
'400':
description: Ongeldig verzoek
content:
application/json:
schema:
$ref: '#/components/schemas/Foutmelding'
'401':
description: Niet geautoriseerd
content:
application/json:
schema:
$ref: '#/components/schemas/Foutmelding'
'500':
description: Interne serverfout
content:
application/json:
schema:
$ref: '#/components/schemas/Foutmelding'
x-wcag-compliance:
- "1.3.1: Info en relaties"
- "3.1.2: Taal van onderdelen"
- "4.1.2: Naam, rol, waarde"
/berichten:
post:
summary: Verstuur een nieuw bericht
description: |
Maakt een nieuw bericht aan met ondersteuning voor meertalige content.
**Inclusiviteitsfuncties:**
- Meertalige content ondersteuning
- UTF-8 karakter encoding
- Cultureel sensitieve datum/tijd verwerking
operationId: postBericht
tags:
- Berichten
security:
- bearerAuth: []
parameters:
- name: Accept-Language
in: header
required: false
schema:
type: string
enum: [nl, en, fr, de]
default: nl
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BerichtAanmaak'
examples:
nederlands:
summary: Nederlands bericht
value:
titel: "Weersvoorspelling Amsterdam"
inhoud: "Zonnig met 20°C"
taal: "nl"
english:
summary: English message
value:
titel: "Weather forecast Amsterdam"
inhoud: "Sunny with 20°C"
taal: "en"
responses:
'201':
description: Bericht succesvol aangemaakt
content:
application/json:
schema:
$ref: '#/components/schemas/BerichtResponse'
headers:
Content-Language:
description: Taal van de respons
schema:
type: string
'400':
description: Ongeldig verzoek
content:
application/json:
schema:
$ref: '#/components/schemas/Foutmelding'
'401':
description: Niet geautoriseerd
content:
application/json:
schema:
$ref: '#/components/schemas/Foutmelding'
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: |
Bearer token authenticatie met ondersteuning voor toegankelijke tokens.
Tokens zijn compatibel met screen readers en andere hulptechnologieën.
schemas:
GebruikersResponse:
type: object
description: Toegankelijke gebruikersrespons met gestructureerde gegevens
properties:
gebruikers:
type: array
description: Lijst van gebruikers met toegankelijke metadata
items:
$ref: '#/components/schemas/Gebruiker'
paginering:
$ref: '#/components/schemas/Paginering'
toegankelijkheid:
$ref: '#/components/schemas/ToegankelijkheidMetadata'
Gebruiker:
type: object
description: Gebruikersobject met inclusieve velden
properties:
id:
type: string
description: Unieke identifier voor screen readers
naam:
type: string
description: Weergavenaam met ondersteuning voor internationale karakters
email:
type: string
format: email
description: Toegankelijk e-mailadres
voorkeurstaal:
type: string
enum: [nl, en, fr, de]
description: Gebruikerstaalvoorkeur voor inclusiviteit
toegankelijkheidsvoorkeuren:
$ref: '#/components/schemas/ToegankelijkheidsVoorkeuren'
BerichtAanmaak:
type: object
required:
- titel
- inhoud
- taal
properties:
titel:
type: string
maxLength: 255
description: Berichttitel in geselecteerde taal
inhoud:
type: string
description: Berichtinhoud met UTF-8 ondersteuning
taal:
type: string
enum: [nl, en, fr, de]
description: Taal van het bericht voor meertalige ondersteuning
toegankelijkheidsopties:
$ref: '#/components/schemas/ToegankelijkheidsOpties'
BerichtResponse:
type: object
properties:
id:
type: string
description: Uniek bericht ID
titel:
type: string
description: Originele titel
inhoud:
type: string
description: Originele inhoud
taal:
type: string
description: Berichttaal
aangemaaktOp:
type: string
format: date-time
description: ISO 8601 datum/tijd voor universele toegankelijkheid
Foutmelding:
type: object
description: Toegankelijke foutmelding met duidelijke instructies
required:
- code
- bericht
- suggestie
properties:
code:
type: string
description: Foutcode voor programmeurs en screen readers
bericht:
type: string
description: Duidelijke foutbeschrijving in geselecteerde taal
suggestie:
type: string
description: Suggestie voor oplossing van het probleem
details:
type: string
description: Technische details voor ontwikkelaars
Paginering:
type: object
description: Toegankelijke pagineringsinformatie
properties:
pagina:
type: integer
description: Huidige paginanummer
perPagina:
type: integer
description: Items per pagina
totaal:
type: integer
description: Totaal aantal items
ToegankelijkheidMetadata:
type: object
description: Metadata voor toegankelijkheid en inclusiviteit
properties:
wcagVersie:
type: string
description: WCAG compliance versie
ondersteundeTalen:
type: array
items:
type: string
description: Beschikbare talen voor inclusiviteit
toegankelijkheidsniveau:
type: string
enum: [A, AA, AAA]
description: WCAG conformiteitsniveau
ToegankelijkheidsVoorkeuren:
type: object
description: Gebruikersvoorkeuren voor toegankelijkheid
properties:
contrast:
type: string
enum: [standaard, hoog]
description: Contrastvoorkeur voor visuele toegankelijkheid
tekstgrootte:
type: string
enum: [klein, medium, groot]
description: Tekstgrootte voorkeur
screenReader:
type: boolean
description: Screen reader optimalisatie
ToegankelijkheidsOpties:
type: object
description: Opties voor berichttoegankelijkheid
properties:
altTekst:
type: string
description: Alternatieve tekst voor afbeeldingen
langAttribuut:
type: string
description: HTML lang attribuut voor meertalige content
ariaLabels:
type: array
items:
type: string
description: ARIA labels voor verbeterde toegankelijkheid
tags:
- name: Gebruikers
description: Gebruikersgerelateerde endpoints met toegankelijke functionaliteit
- name: Berichten
description: Berichtenbeheer met meertalige ondersteuning
x-wcag-compliance:
niveau: "AA"
richtlijnen:
- "1.1.1: Niet-tekstuele content"
- "1.3.1: Info en relaties"
- "1.3.2: Betekenisvolle volgorde"
- "2.4.4: Linkdoel (in context)"
- "3.1.1: Taal van de pagina"
- "3.1.2: Taal van onderdelen"
- "4.1.2: Naam, rol, waarde"
x-inclusivity-features:
- "Meertalige documentatie en foutmeldingen"
- "Ondersteuning voor diverse datums/tijdzones"
- "Cultureel neutrale API design"
- "UTF-8 karakter encoding"
- "Flexibele authenticatiemethoden"
```
Deze OpenAPI specificatie integreert expliciet WCAG 2.1 toegankelijkheidsrichtlijnen en meertalige ondersteuning door:
1. **Toegankelijkheid**: WCAG compliance metadata, gestructureerde responses, duidelijke foutmeldingen
2. **Inclusiviteit**: Meertalige ondersteuning (NL/EN/FR/DE), cultureel neutrale datums, UTF-8 encoding
3. **Documentatie**: Uitgebreide beschrijvingen van toegankelijkheidsfuncties
4. **Security**: Bearer token authenticatie met toegankelijkheidsoverwegingen
5. **Flexibiliteit**: Meerdere response formaten en taalopties