Authentifizierung
Die Eaternity API sichert alle Requests mit Basic Authentication und Ihrem API-Schlüssel.
Überblick
| Anforderung | Details |
|---|---|
| Authentifizierungsart | HTTP Basic Auth |
| Benutzername | Ihr API-Schlüssel |
| Passwort | Leer (frei lassen) |
| Protokoll | Nur HTTPS (SSL/TLS erforderlich) |
| SNI-Unterstützung | Server Name Indication erforderlich |
Ihren API-Schlüssel erhalten
So erhalten Sie einen API-Schlüssel:
- Eaternity kontaktieren – E-Mail: info@eaternity.ch. Nennen Sie Ihren Firmennamen, Ihren Anwendungsfall und das geschätzte Request-Volumen.
- API-Schlüssel erhalten – Sie erhalten einen eindeutigen API-Schlüssel per sicherer E-Mail.
- Lizenz aktivieren – Ihr API-Schlüssel wird mit lizenzierten Küchen verknüpft. Nicht lizenzierte Küchen geben
403 Forbiddenzurück.
Ihr API-Schlüssel gewährt Zugriff auf Ihre Daten und verursacht Nutzungskosten. Teilen Sie ihn nie öffentlich und committen Sie ihn nie in die Versionskontrolle.
Authentifizierungsmethoden
cURL
Verwenden Sie das Flag -u mit Ihrem API-Schlüssel als Benutzername und einem leeren Passwort (beachten Sie den Doppelpunkt):
curl -u YOUR_API_KEY: https://co2.eaternity.ch/api/kitchens/
HTTP-Header
Den Basic-Auth-Header von Hand erstellen:
# 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));
SSL/TLS-Anforderungen
Alle API-Requests müssen HTTPS verwenden. Der API-Server verlangt Unterstützung für Server Name Indication (SNI) – die meisten modernen HTTP-Bibliotheken unterstützen dies standardmässig. Details finden Sie im Abschnitt zu SSL & SNI auf der Einführungsseite.
Rate Limiting
Kontaktieren Sie info@eaternity.ch für Details zu den Rate Limits Ihres API-Schlüssels.
Fehler-Responses
Authentifizierungsfehler geben übliche HTTP-Statuscodes zurück. Details zu allen Fehlercodes, einschliesslich 401 Unauthorized und 403 Forbidden, finden Sie im Abschnitt HTTP-Statuscodes auf der Einführungsseite.
Best Practices für die Sicherheit
Umgebungsvariablen
Speichern Sie API-Schlüssel in Umgebungsvariablen, nicht im 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 API-Schlüssels
Wechseln Sie Ihre API-Schlüssel regelmässig:
- Fordern Sie beim Support einen neuen API-Schlüssel an
- Aktualisieren Sie Ihre Anwendungen mit dem neuen Schlüssel
- Prüfen Sie die Funktion mit dem neuen Schlüssel
- Lassen Sie den alten Schlüssel deaktivieren
Endpoints
Authentifizierungs-Endpoints, einschliesslich OAuth2-Token-Austausch.
Den Endpoint für den Token-Austausch finden Sie unter OAuth 2 Token.