Autenticación
La Eaternity API usa Basic Authentication con vuestra clave de API para proteger todas las solicitudes.
Visión general
| Requisito | Detalles |
|---|---|
| Tipo de autenticación | HTTP Basic Auth |
| Usuario | Vuestra clave de API |
| Contraseña | Vacía (dejadla en blanco) |
| Protocolo | Solo HTTPS (SSL/TLS obligatorio) |
| Soporte de SNI | Server Name Indication obligatorio |
Obtener vuestra clave de API
Para obtener una clave de API:
- Contactad con Eaternity: correo electrónico: info@eaternity.ch. Indicad el nombre de vuestra empresa, el caso de uso y el volumen estimado de solicitudes.
- Recibid la clave de API: recibiréis una clave de API única por correo electrónico seguro.
- Activad la licencia: vuestra clave de API se asociará a una o varias cocinas con licencia. Las cocinas sin licencia devuelven errores
403 Forbidden.
Vuestra clave de API da acceso a vuestros datos y genera costes de uso. No la compartáis nunca públicamente ni la subáis al control de versiones.
Métodos de autenticación
cURL
Usad la opción -u con vuestra clave de API como usuario y una contraseña vacía (fijaos en los dos puntos):
curl -u YOUR_API_KEY: https://co2.eaternity.ch/api/kitchens/
Cabecera HTTP
Construid a mano la cabecera de 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));
Requisitos de SSL/TLS
Todas las solicitudes a la API deben usar HTTPS. El servidor de la API requiere soporte de Server Name Indication (SNI); la mayoría de las bibliotecas HTTP modernas lo gestionan por defecto. Ved la sección SSL y SNI de la página de introducción para más detalles.
Límite de solicitudes
Contactad con info@eaternity.ch para conocer los límites de solicitudes de vuestra clave de API.
Respuestas de error
Los errores de autenticación devuelven códigos de estado HTTP estándar. Ved la sección Códigos de estado HTTP de la página de introducción para los detalles de todos los códigos de error, incluidos 401 Unauthorized y 403 Forbidden.
Buenas prácticas de seguridad
Variables de entorno
Guardad las claves de API en variables de entorno, no en el código:
# .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')
Rotación de claves de API
Rotad vuestras claves de API periódicamente:
- Pedid una nueva clave de API al soporte
- Actualizad vuestras aplicaciones con la nueva clave
- Comprobad que todo funciona con la nueva clave
- Pedid la desactivación de la clave antigua
Endpoints
Endpoints de autenticación, incluido el intercambio de tokens OAuth2.
Ved OAuth 2 Token para el endpoint de intercambio de tokens.