Aller au contenu

Référence API

Documentation complète de l'API REST.

Authentification

L'API utilise des tokens Bearer pour l'authentification :

curl -H "Authorization: Bearer YOUR_TOKEN" \
     https://api.example.com/v1/endpoint

Endpoints

GET /api/v1/status

Récupère le statut du service.

Réponse :

{
  "status": "ok",
  "version": "1.0.0",
  "timestamp": "2024-01-01T12:00:00Z"
}

POST /api/v1/data

Crée une nouvelle entrée de données.

Paramètres :

Nom Type Requis Description
name string Oui Nom de l'entrée
value number Oui Valeur numérique
tags array Non Liste de tags

Exemple de requête :

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "name": "example",
    "value": 42,
    "tags": ["important", "test"]
  }' \
  https://api.example.com/v1/data

Réponse :

{
  "id": 123,
  "name": "example",
  "value": 42,
  "tags": ["important", "test"],
  "created_at": "2024-01-01T12:00:00Z"
}

GET /api/v1/data/{id}

Récupère une entrée par son ID.

Paramètres d'URL :

  • id (integer) : ID de l'entrée

Codes de réponse :

  • 200 : Succès
  • 404 : Entrée non trouvée
  • 401 : Non autorisé

Gestion d'erreurs

L'API retourne des erreurs au format JSON :

{
  "error": {
    "code": "INVALID_REQUEST",
    "message": "Le paramètre 'name' est requis",
    "details": {
      "field": "name",
      "value": null
    }
  }
}

Limites de taux

  • 1000 requêtes par heure par token
  • 100 requêtes par minute par token
  • Headers de réponse : X-RateLimit-Limit, X-RateLimit-Remaining

SDKs et exemples

Python

import requests

class APIClient:
    def __init__(self, token):
        self.token = token
        self.base_url = "https://api.example.com/v1"
        self.headers = {
            "Authorization": f"Bearer {token}",
            "Content-Type": "application/json"
        }

    def get_status(self):
        response = requests.get(f"{self.base_url}/status", 
                             headers=self.headers)
        return response.json()

JavaScript

class APIClient {
  constructor(token) {
    this.token = token;
    this.baseURL = 'https://api.example.com/v1';
  }

  async getStatus() {
    const response = await fetch(`${this.baseURL}/status`, {
      headers: {
        'Authorization': `Bearer ${this.token}`,
        'Content-Type': 'application/json'
      }
    });
    return response.json();
  }
}