Aller au contenu principal

Authentification

L'Eaternity API utilise l'authentification Basic avec votre clé API pour sécuriser toutes les requests.

Aperçu​

ExigenceDétails
Type d'authentificationHTTP Basic Auth
Nom d'utilisateurVotre clé API
Mot de passeVide (laisser vide)
ProtocoleHTTPS uniquement (SSL/TLS obligatoire)
Prise en charge SNIServer Name Indication obligatoire

Obtenir votre clé API​

Pour obtenir une clé API :

  1. Contactez Eaternity — E-mail : info@eaternity.ch. Indiquez le nom de votre entreprise, votre use case et le volume de requests estimé.
  2. Recevez la clé API — Vous recevez une clé API unique par e-mail sécurisé.
  3. Activez la licence — Votre clé API est associée à une ou plusieurs cuisines sous licence. Les cuisines sans licence renvoient des erreurs 403 Forbidden.
Gardez votre clé API secrète

Votre clé API donne accès à vos données et génère des frais d'utilisation. Ne la partagez jamais publiquement et ne la versionnez jamais dans un système de contrôle de version.

Méthodes d'authentification​

cURL​

Utilisez l'option -u avec votre clé API comme nom d'utilisateur et un mot de passe vide (notez les deux-points) :

curl -u YOUR_API_KEY: https://co2.eaternity.ch/api/kitchens/

En-tête HTTP​

Construisez manuellement l'en-tête Basic Auth :

# Base64 encode "YOUR_API_KEY:"
echo -n "YOUR_API_KEY:" | base64
# Result: WU9VUl9BUElfS0VZOg==

curl -H "Authorization: Basic WU9VUl9BUElfS0VZOg==" \
https://co2.eaternity.ch/api/kitchens/

Python​

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://co2.eaternity.ch/api"

# Method 1: Using auth parameter
response = requests.get(
f"{BASE_URL}/kitchens/",
auth=(API_KEY, "")
)

# Method 2: Using headers
import base64
auth_header = base64.b64encode(f"{API_KEY}:".encode()).decode()
response = requests.get(
f"{BASE_URL}/kitchens/",
headers={"Authorization": f"Basic {auth_header}"}
)

JavaScript (Node.js)​

// Using fetch with Buffer (Node.js)
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://co2.eaternity.ch/api';

const authHeader = Buffer.from(`${API_KEY}:`).toString('base64');

fetch(`${BASE_URL}/kitchens/`, {
headers: {
'Authorization': `Basic ${authHeader}`,
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data));

Exigences SSL/TLS​

Toutes les requests API doivent utiliser HTTPS. Le serveur API exige la prise en charge de Server Name Indication (SNI) — la plupart des bibliothèques HTTP modernes la gèrent par défaut. Détails : section SSL et SNI de la page d'introduction.

Limitation du débit​

Contactez info@eaternity.ch pour connaître les limites de débit applicables à votre clé API.

Réponses d'erreur​

Les erreurs d'authentification renvoient des codes de statut HTTP standard. Tous les codes d'erreur, dont 401 Unauthorized et 403 Forbidden, sont décrits dans la section Codes de statut HTTP.

Bonnes pratiques de sécurité​

Variables d'environnement​

Enregistrez les clés API dans des variables d'environnement, pas dans le code :

# .env file (add to .gitignore)
EATERNITY_API_KEY=your_actual_api_key_here
import os
from dotenv import load_dotenv

load_dotenv()
API_KEY = os.getenv('EATERNITY_API_KEY')

Rotation des clés API​

Renouvelez régulièrement vos clés API :

  1. Demandez une nouvelle clé API au support
  2. Mettez à jour vos applications avec la nouvelle clé
  3. Vérifiez le fonctionnement avec la nouvelle clé
  4. Demandez la désactivation de l'ancienne clé

Endpoints​

Endpoints d'authentification, dont l'échange de token OAuth2.

Voir OAuth 2 Token pour l'endpoint d'échange de token.