Passa al contenuto principale

Autenticazione

L'Eaternity API usa la Basic Authentication con la vostra chiave API per proteggere tutte le request.

Panoramica​

RequisitoDettagli
Tipo di autenticazioneHTTP Basic Auth
UsernameLa vostra chiave API
PasswordVuota (lasciare in bianco)
ProtocolloSolo HTTPS (SSL/TLS obbligatorio)
Supporto SNIServer Name Indication obbligatoria

Ottenere la chiave API​

Per ottenere una chiave API:

  1. Contattate Eaternity — Email: info@eaternity.ch. Indicate il nome dell'azienda, il caso d'uso e il volume stimato di request.
  2. Ricevete la chiave API — Riceverete una chiave API univoca tramite email sicura.
  3. Attivate la licenza — La vostra chiave API sarà associata alle cucine con licenza. Le cucine senza licenza restituiscono errori 403 Forbidden.
Mantenete segreta la chiave API

La chiave API dà accesso ai vostri dati e genera costi di utilizzo. Non condividetela mai pubblicamente e non inseritela nel controllo di versione.

Metodi di autenticazione​

cURL​

Usate il flag -u con la chiave API come username e una password vuota (notate i due punti):

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

Header HTTP​

Costruite manualmente l'header 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));

Requisiti SSL/TLS​

Tutte le request API devono usare HTTPS. Il server API richiede il supporto della Server Name Indication (SNI): la maggior parte delle librerie HTTP moderne lo gestisce in modo predefinito. Per i dettagli consultate la sezione SSL e SNI nella pagina introduttiva.

Limiti di frequenza​

Contattate info@eaternity.ch per conoscere i limiti di frequenza applicati alla vostra chiave API.

Response di errore​

Gli errori di autenticazione restituiscono codici di stato HTTP standard. Consultate la sezione Codici di stato HTTP nella pagina introduttiva per i dettagli su tutti i codici di errore, inclusi 401 Unauthorized e 403 Forbidden.

Buone pratiche di sicurezza​

Variabili d'ambiente​

Salvate le chiavi API in variabili d'ambiente, non nel codice:

# .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')

Rotazione della chiave API​

Sostituite periodicamente le vostre chiavi API:

  1. Richiedete una nuova chiave API al supporto
  2. Aggiornate le vostre applicazioni con la nuova chiave
  3. Verificate il funzionamento con la nuova chiave
  4. Richiedete la disattivazione della vecchia chiave

Endpoint​

Endpoint di autenticazione, incluso lo scambio di token OAuth2.

Consultate OAuth 2 Token per l'endpoint di scambio del token.