Help me bij het ontwerpen van een OpenAPI-specificatie die lokalisatie- en internationaliseringsfuncties ondersteunt voor mijn API.
description
Door te focussen op lokalisatie en internationalisering, kun je ervoor zorgen dat je API een diverse gebruikersbasis bedient, de gebruikerservaring verbetert en je marktbereik vergroot.
prompt
try_prompt
Ik wil een OpenAPI-specificatie maken die beschrijft hoe mijn API lokalisatie en internationalisering zal afhandelen. Gelieve de volgende details op te nemen: API Naam: {{api_naam}}, Ondersteunde Talen: ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
openapi: 3.0.0
info:
titel: WeerAPI
versie: 1.0.0
beschrijving: >
API voor weersgegevens met ondersteuning voor lokalisatie en internationalisering.
Deze API ondersteunt meerdere talen en houdt rekening met tijdzones en valuta's.
Authenticatie gebeurt via een API-sleutel.
servers:
- url: https://api.weervoorbeeld.com
beschrijving: Productieserver
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
security:
- ApiKeyAuth: []
parameters:
taal:
name: lang
in: query
description: De taal waarin de gegevens worden geretourneerd.
required: false
schema:
type: string
enum: [en, fr, es]
default: en
locatie:
name: locatie
in: query
description: >
De locatie waarvoor het weer wordt opgevraagd.
required: true
schema:
type: string
tijdzone:
name: timezone
in: query
description: >
De tijdzone voor tijdgerelateerde gegevens, bijv. "Europe/Amsterdam".
required: false
schema:
type: string
valuta:
name: valuta
in: query
description: >
De valuta die moet worden gebruikt voor prijs- en valutaweergave, bijv. "EUR".
required: false
schema:
type: string
paths:
/weer:
get:
summary: Haal weersgegevens op met ondersteuning voor internationalisering.
parameters:
- $ref: '#/parameters/locatie'
- $ref: '#/parameters/taal'
- $ref: '#/parameters/tijdzone'
- $ref: '#/parameters/valuta'
responses:
'200':
description: Succesvolle weergave van weersgegevens.
content:
application/json:
schema:
type: object
properties:
locatie:
type: string
description: De locatie van het weer.
temperatuur:
type: number
description: De temperatuur in de opgegeven valuta.
weersituatie:
type: string
description: Beschrijving van de weersituatie, gelokaliseerd.
tijd:
type: string
description: Datum en tijd van de gegevens, afgestemd op de tijdzone.
examples:
voorbeeld:
value:
locatie: "Amsterdam"
temperatuur: 20.5
weersituatie: "Zonnig"
tijd: "2024-04-27T14:00:00+02:00"
'401':
description: Ongeldige of ontbrekende API-sleutel.
'400':
description: Ongeldige invoerparameters.
# Lokalisatiestrategieën en overwegingen:
# - Tekst wordt geïnterpoleerd in de API-responses op basis van de taalparameter.
# - Tijdstippen worden geformatteerd volgens de opgegeven tijdzone.
# - Valuta wordt weergegeven volgens de opgegeven valutacode.
# - Authenticatie wordt afgehandeld met een API-sleutel in de headers.
provider: deepseek
model: deepseek-chat
Hier is een OpenAPI-specificatie (3.0.0) voor je WeerAPI met ondersteuning voor lokalisatie en internationalisering:
```yaml
openapi: 3.0.0
info:
title: WeerAPI
description: Een gelokaliseerde weersvoorspellings-API met ondersteuning voor meerdere talen en regio's
version: 1.0.0
contact:
name: API Ondersteuning
email: support@weerapi.com
servers:
- url: https://api.weerapi.com/v1
description: Productieserver
paths:
/weather:
get:
summary: Haal weersvoorspelling op
description: Retourneert weersvoorspellingen gelokaliseerd voor de opgegeven taal en regio
parameters:
- name: Accept-Language
in: header
required: false
schema:
type: string
enum: [en, fr, es]
description: Gewenste taal voor respons (standaard: en)
- name: location
in: query
required: true
schema:
type: string
description: Plaatsnaam of coördinaten
- name: units
in: query
required: false
schema:
type: string
enum: [metric, imperial]
description: Eenheidensysteem (standaard: metric)
- name: timezone
in: query
required: false
schema:
type: string
description: Tijdzone voor weergave tijden (bijv. Europe/Amsterdam)
responses:
'200':
description: Succesvolle weersvoorspelling
content:
application/json:
schema:
type: object
properties:
location:
type: object
properties:
name:
type: string
description: Gelokaliseerde plaatsnaam
country:
type: string
description: Gelokaliseerd land
current:
type: object
properties:
temperature:
type: number
description: Temperatuur in opgegeven eenheden
condition:
type: string
description: Gelokaliseerde weersomstandigheid
humidity:
type: number
wind_speed:
type: number
local_time:
type: string
format: date-time
description: Lokale tijd in opgegeven tijdzone
forecast:
type: array
items:
type: object
properties:
date:
type: string
format: date
condition:
type: string
description: Gelokaliseerde weersvoorspelling
max_temp:
type: number
min_temp:
type: number
metadata:
type: object
properties:
language:
type: string
timezone:
type: string
units:
type: string
'400':
description: Ongeldige aanvraag
'401':
description: Niet geautoriseerd
'404':
description: Locatie niet gevonden
/supported-languages:
get:
summary: Haal ondersteunde talen op
description: Retourneert lijst van ondersteunde talen en regio's
responses:
'200':
description: Lijst van ondersteunde talen
content:
application/json:
schema:
type: object
properties:
languages:
type: array
items:
type: object
properties:
code:
type: string
name:
type: string
native_name:
type: string
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
schemas:
Error:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
details:
type: object
security:
- ApiKeyAuth: []
x-lokaliseringsstrategieën:
- string_interpolatie: "Dynamische vervanging van plaatshouders in berichten"
- resource_bundles: "Taalspecifieke bronbestanden per ondersteunde taal"
- fallback_mechanisme: "Automatische terugval naar Engels bij ontbrekende vertalingen"
x-internationaliseringsoverwegingen:
tijdzones:
- "Alle tijden worden geretourneerd in de opgegeven tijdzone"
- "Standaard tijdzone wordt afgeleid uit locatie indien niet opgegeven"
valuta:
- "Valuta-informatie voor betalende services (indien van toepassing)"
datum_formaten:
- "Datumnotatie aangepast aan locale conventies"
getalformattering:
- "Decimale scheidingstekens volgens locale gewoonten"
eenheden:
- "Ondersteuning voor metrisch en imperiaal systeem"
x-implementatie-notities:
- "Gebruik ICU berichtformattering voor string interpolatie"
- "Maintain vertaalbundels voor elke ondersteunde taal"
- "Valideer en normaliseer tijdzone-invoer"
- "Implementeer caching voor gelokaliseerde content"
```
**Belangrijkste kenmerken:**
1. **Lokalisatie**:
- `Accept-Language` header voor taalselectie
- String interpolatie voor dynamische berichten
- Gelokaliseerde plaatsnamen en weersomstandigheden
2. **Internationalisering**:
- Tijdzone-ondersteuning via query parameter
- Eenheidensysteem (metrisch/imperiaal)
- Locale datum- en getalformattering
3. **Beveiliging**:
- API-sleutel authenticatie via header
4. **Uitbreidbaar**:
- Eenvoudig nieuwe talen toe te voegen
- Duidelijke foutberichten in geselecteerde taal

