Saltar al contenido principal

Autenticación

La Eaternity API usa Basic Authentication con vuestra clave de API para proteger todas las solicitudes.

Visión general​

RequisitoDetalles
Tipo de autenticaciónHTTP Basic Auth
UsuarioVuestra clave de API
ContraseñaVacía (dejadla en blanco)
ProtocoloSolo HTTPS (SSL/TLS obligatorio)
Soporte de SNIServer Name Indication obligatorio

Obtener vuestra clave de API​

Para obtener una clave de API:

  1. 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.
  2. Recibid la clave de API: recibiréis una clave de API única por correo electrónico seguro.
  3. Activad la licencia: vuestra clave de API se asociará a una o varias cocinas con licencia. Las cocinas sin licencia devuelven errores 403 Forbidden.
Mantened vuestra clave de API en secreto

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:

  1. Pedid una nueva clave de API al soporte
  2. Actualizad vuestras aplicaciones con la nueva clave
  3. Comprobad que todo funciona con la nueva clave
  4. 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.