Help me bij het maken van gedetailleerde API-gebruiksituaties voor mijn REST API.
description
Door gedetailleerde gebruikssituaties te ontwikkelen, kan ik ontwikkelaars helpen begrijpen hoe ze mijn API effectief kunnen gebruiken, wat leidt tot soepelere integraties en verbeterde gebruikerservaring.
prompt
try_prompt
API-naam: {{api_naam}}. Belangrijke scenario's: {{gebruiksscenario_s}}. Ik wil verschillende gebruikssituaties schetsen die laten zien hoe ontwikkelaars effectief kunnen omgaan met mijn AP ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier zijn verschillende gebruikssituaties voor de Weer API, inclusief stapsgewijze voorbeelden, verwachte resultaten en valkuilen om te vermijden:
1. **Weergegevens voor een specifieke locatie ophalen**
**Stap-voor-stap:**
1. Ontwikkelaar stuurt een GET-verzoek naar de API met de parameter voor de locatie, bijvoorbeeld:
`GET /weer?plaats=Amsterdam`
2. De API verwerkt de aanvraag en haalt de actuele weergegevens op voor Amsterdam.
3. De API stuurt een JSON-response terug met gegevens zoals temperatuur, neerslag en wind.
**Verwachte resultaat:**
```json
{
"plaats": "Amsterdam",
"temperatuur": 18,
"neerslag": 0,
"wind": 15,
"beschrijving": "Heldere hemel"
}
```
**Valkuilen om te vermijden:**
- Vergeten te controleren of de locatie correct is gespeld.
- Niet omgaan met foutmeldingen zoals ongeldige locaties.
- Geen fallback of standaardwaarde bieden bij mislukte gegevens.
---
2. **Weerbericht voor meerdere locaties tegelijk opvragen**
**Stap-voor-stap:**
1. Ontwikkelaar maakt een verzoek met meerdere locaties, bijvoorbeeld via een array:
`GET /weer?plaatsen=Amsterdam,Rotterdam,Utrecht`
2. De API verwerkt deze lijst, haalt gegevens voor elke locatie op.
3. De API retourneert een array met weergegevens per locatie.
**Verwachte resultaat:**
```json
[
{
"plaats": "Amsterdam",
"temperatuur": 18
},
{
"plaats": "Rotterdam",
"temperatuur": 19
},
{
"plaats": "Utrecht",
"temperatuur": 17
}
]
```
**Valkuilen om te vermijden:**
- Te grote aantal locaties in één verzoek, wat de prestaties kan beïnvloeden.
- Niet afhandelen van locaties die niet gevonden worden.
- Onvoldoende documentatie over het formaat van de meerdere locaties parameter.
---
3. **Weergegevens op basis van GPS-coördinaten**
**Stap-voor-stap:**
1. Ontwikkelaar stuurt een GET-verzoek met longitude en latitude:
`GET /weer?lat=52.3676&lon=4.9041`
2. De API gebruikt deze coördinaten om de dichtstbijzijnde locatie te bepalen.
3. De API geeft de actuele weergegevens voor die locatie terug.
**Verwachte resultaat:**
```json
{
"plaats": "Amsterdam",
"temperatuur": 18,
"beschrijving": "Lichte bewolking"
}
```
**Valkuilen om te vermijden:**
- Onjuiste of onvolledige coördinaten invoeren.
- Geen checks of de coördinaten binnen geldige grenzen.
- Niet documenteren dat GPS-gegevens vereist kunnen zijn.
---
4. **Weergegevens opvragen met een tijdsparameter (bijvoorbeeld voorspelling)**
**Stap-voor-stap:**
1. Ontwikkelaar stuurt een verzoek voor de voorspelling van morgen:
`GET /weer?plaats=Amsterdam&dag=morgen`
2. De API verwerkt de parameter en haalt de voorspelling voor die dag op.
3. De API retourneert de verwachte weersituatie.
**Verwachte resultaat:**
```json
{
"plaats": "Amsterdam",
"temperatuur": 20,
"beschrijving": "Lichte regen"
}
```
**Valkuilen om te vermijden:**
- Verkeerde of niet-ondersteunde dag-parameters.
- Niet omgaan met ontbrekende data of ongeldige invoer.
- Onvoldoende documentatie over beschikbare tijdsopties.
---
**Algemene tips voor ontwikkelaars:**
- Zorg voor juiste error-behandeling en feedback bij mislukte verzoeken.
- Valideer alle invoerparameters vóór het versturen.
- Documenteer duidelijk de parameters en verwachte formaten.
- Test met verschillende scenario's, inclusief edge cases en foutgevallen.
Door deze scenario's en richtlijnen te volgen, kunnen ontwikkelaars effectief en robuust gebruik maken van de Weer API in verschillende toepassingen.
provider: deepseek
model: deepseek-chat
Zeker, hier is een gedetailleerd overzicht van effectieve gebruikssituaties voor jouw Weer API, inclusief praktische voorbeelden en valkuilen:
### Belangrijkste Gebruiksscenario's voor Weer API
#### 1. Huidige Weersomstandigheden Opvragen
**Gebruiksdoel**: Actuele temperatuur, vochtigheid en weersomstandigheden tonen.
**Stapsgewijs Voorbeeld**:
1. **API-aanroep**: `GET /v1/current?city=Amsterdam`
2. **Verwacht Resultaat**:
```json
{
"location": "Amsterdam",
"temperature": 15,
"humidity": 72,
"conditions": "Gedeeltelijk bewolkt",
"wind_speed": 12
}
```
3. **Implementatie**:
```javascript
// Frontend toepassing
fetch('https://api.jouwweerapi.com/v1/current?city=Amsterdam')
.then(response => response.json())
.then(data => {
document.getElementById('temperatuur').innerHTML = data.temperature + '°C';
document.getElementById('condities').innerHTML = data.conditions;
});
```
**Veelgemaakte Fouten**:
- Geen foutafhandeling bij ongeldige stadsnamen
- Vergeten API-sleutel toe te voegen aan headers
- Geen caching implementeren voor veelgevraagde locaties
---
#### 2. Weersvoorspelling voor Meerdere Dagen
**Gebruiksdoel**: Planning voor komende dagen (bijv. reis-app).
**Stapsgewijs Voorbeeld**:
1. **API-aanroep**: `GET /v1/forecast?city=Rotterdam&days=5`
2. **Verwacht Resultaat**:
```json
{
"location": "Rotterdam",
"forecast": [
{
"date": "2024-01-15",
"max_temp": 16,
"min_temp": 8,
"conditions": "Zonnig"
},
// ... 4 extra dagen
]
}
```
3. **Implementatie**:
```python
# Backend service
import requests
def get_forecast(city, days=5):
response = requests.get(
f"https://api.jouwweerapi.com/v1/forecast?city={city}&days={days}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
return response.json()
# Gebruik
voorspelling = get_forecast("Utrecht", 3)
```
**Veelgemaakte Fouten**:
- Te veel dagen opvragen (onnodige data)
- Timezone-verschillen niet verwerken
- Geen fallback voor mislukte verzoeken
---
#### 3. Gebruikerslocatie Detecteren voor Persoonlijk Weer
**Gebruiksdoel**: Automatisch weer tonen voor huidige locatie gebruiker.
**Stapsgewijs Voorbeeld**:
1. **Stap 1**: Gebruikerstoestemming vragen voor locatie
2. **Stap 2**: Coördinaten verwerken via `GET /v1/current?lat=52.37&lon=4.89`
3. **Verwacht Resultaat**:
```json
{
"location": "Amsterdam",
"temperature": 14,
"conditions": "Licht regen",
"feels_like": 12
}
```
4. **Implementatie**:
```javascript
// Browser-based detectie
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position => {
const {latitude, longitude} = position.coords;
fetch(`/v1/current?lat=${latitude}&lon=${longitude}`)
.then(response => response.json())
.then(weatherData => updateUI(weatherData));
});
}
```
**Veelgemaakte Fouten**:
- Geen fallback voor geblokkeerde locatietoegang
- Verkeerde coördinaatvolgorde (lat/lon vs lon/lat)
- Geen loading state tijdens locatie-opzoeken
---
#### 4. Gebruikersvoorkeuren Opslaan en Hergebruiken
**Gebruiksdoel**: Snel weer tonen voor opgeslagen favoriete locaties.
**Stapsgewijs Voorbeeld**:
1. **Stap 1**: Gebruiker slaat voorkeurslocaties op
2. **Stap 2**: Batch-verzoek voor meerdere locaties: `GET /v1/multiple?cities=Amsterdam,Utrecht,Rotterdam`
3. **Verwacht Resultaat**:
```json
{
"results": [
{"location": "Amsterdam", "temp": 15},
{"location": "Utrecht", "temp": 14},
{"location": "Rotterdam", "temp": 16}
]
}
```
4. **Implementatie**:
```javascript
// Favorieten beheren
const favorieten = ['Amsterdam', 'Eindhoven', 'Groningen'];
function updateFavorietWeer() {
favorieten.forEach(stad => {
fetch(`/v1/current?city=${encodeURIComponent(stad)}`)
.then(response => response.json())
.then(data => toonFavorietWeer(data));
});
}
```
**Veelgemaakte Fouten**:
- Te veel parallelle verzoeken (rate limiting overschrijden)
- Niet-URL-veilige stadnamen niet encoderen
- Geen caching voor herhaalde verzoeken
---
### Algemene Best Practices en Valkuilen
✅ **Doen**:
- Implementeer rate limiting en backoff bij 429 responses
- Gebruik caching (bijv. 10 minuten voor huidig weer)
- Voeg altijd foutafhandeling toe
- Valideer gebruikersinvoer voor locatienamen
❌ **Niet Doen**:
- API-sleutels in frontend code plaatsen (gebruik backend proxy)
- Vergeten units aan te geven (Celsius/Fahrenheit)
- Aannemen dat locatienamen altijd bestaan
- Synchronous API-calls in UI-thread doen
---
### Foutafhandeling Voorbeeld
```javascript
async function getWeather(city) {
try {
const response = await fetch(`/v1/current?city=${city}`);
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
return await response.json();
} catch (error) {
console.error('Weer API fout:', error);
// Fallback naar cached data of default waarden
return getCachedWeather(city) || {temperature: 'N/A', conditions: 'Onbekend'};
}
}
```
Deze scenario's bieden een solide basis voor ontwikkelaars om jouw Weer API effectief te integreren in verschillende toepassingen!

