Aller au contenu principal

Introduction à l'API Wast-o

L'API publique Wast-o permet d'accéder aux données de collecte de déchets, calendriers, challenges et contenus éditoriaux de manière programmatique.

Base URL

https://api.wast-o.org

Tous les endpoints de l'API publique sont préfixés par /public.

Authentification

L'API publique Wast-o ne nécessite pas d'authentification pour la plupart des endpoints. Tous les endpoints sont accessibles publiquement.

info

Pour les fonctionnalités nécessitant un identifiant utilisateur (comme le suivi de progression), un deviceId unique est utilisé. Ce deviceId peut être généré côté client et stocké localement.

Format des données

L'API utilise JSON pour toutes les requêtes et réponses. Les en-têtes HTTP suivants sont utilisés :

  • Content-Type: application/json pour les requêtes POST
  • Accept: application/json pour toutes les requêtes

Versioning

Actuellement, l'API est en version 1.0. La version future sera indiquée dans l'URL de base si nécessaire.

Rate Limiting

attention

Des limites de taux peuvent être appliquées pour éviter les abus. En cas de dépassement, vous recevrez une réponse HTTP 429 (Too Many Requests).

Les limites exactes seront communiquées dans les en-têtes de réponse :

  • X-RateLimit-Limit : Nombre maximum de requêtes autorisées
  • X-RateLimit-Remaining : Nombre de requêtes restantes
  • X-RateLimit-Reset : Timestamp de réinitialisation

Codes de statut HTTP

L'API utilise les codes de statut HTTP standards :

  • 200 OK : Requête réussie
  • 201 Created : Ressource créée avec succès
  • 400 Bad Request : Requête invalide
  • 404 Not Found : Ressource non trouvée
  • 429 Too Many Requests : Trop de requêtes
  • 500 Internal Server Error : Erreur serveur

Gestion des erreurs

En cas d'erreur, l'API retourne un objet JSON avec les informations suivantes :

{
"statusCode": 404,
"message": "Ville avec l'ID abc123 non trouvée",
"error": "Not Found"
}

Exemples de requêtes

JavaScript (fetch)

const response = await fetch('https://api.wast-o.org/public/cities');
const cities = await response.json();
console.log(cities);

TypeScript (avec types)

interface City {
id: string;
name: string;
country: string;
// ...
}

const response = await fetch('https://api.wast-o.org/public/cities');
const cities: City[] = await response.json();

cURL

curl https://api.wast-o.org/public/cities

Prochaines étapes