Genera un client locale
I pacchetti pubblici per Java, Python o Node.js non sono ancora stati pubblicati. Genera un client locale dal contratto pubblico versionato usando il comando del generatore bloccato mostrato qui sotto. Mantenere fissa la versione del generatore rende deliberate le modifiche al contratto.
Configura le richieste
Esegui le chiamate da un server affidabile, leggi il token di accesso dall'ambiente e usa l'indirizzo di base e i timeout mostrati negli esempi. Non inserire mai il token nel codice del browser.
Elenca gli animali
Gli esempi Java, Python e Node.js qui sotto eseguono la stessa prima operazione con le librerie standard della piattaforma, quindi non dipendono da un pacchetto non pubblicato.
Gestisci gli errori
Controlla sia lo stato sia il corpo della risposta. Conserva l'identificatore della richiesta quando contatti l'assistenza, ma non registrare mai il token di accesso. Ripeti una scrittura o la generazione di una dieta solo quando la richiesta può essere ripetuta in sicurezza.
Versione e origine
Genera i client dal bundle pubblico OpenAPI. Fissa le versioni del contratto e del generatore nella compilazione, così gli aggiornamenti vengono esaminati e sono ripetibili.
Java
curl --fail --silent --show-error https://api.barflab.io/openapi.yaml -o openapi.yaml
docker run --rm -v "$PWD:/local" openapitools/openapi-generator-cli:v7.24.0 generate \
-i /local/openapi.yaml -g java -o /local/generated/barflab-java \
--additional-properties=library=native
Java HTTP
var request = HttpRequest.newBuilder(URI.create(
"https://api.barflab.io/v1/pets"))
.header("Authorization", "Bearer " + System.getenv("BARFLAB_TOKEN"))
.header("Accept", "application/json")
.timeout(Duration.ofSeconds(30))
.GET()
.build();
var response = httpClient.send(request, BodyHandlers.ofString());
Python
curl --fail --silent --show-error https://api.barflab.io/openapi.yaml -o openapi.yaml
docker run --rm -v "$PWD:/local" openapitools/openapi-generator-cli:v7.24.0 generate \
-i /local/openapi.yaml -g python -o /local/generated/barflab-python
Python HTTP
import os
import urllib.request
request = urllib.request.Request(
"https://api.barflab.io/v1/pets",
headers={
"Authorization": f"Bearer {os.environ['BARFLAB_TOKEN']}",
"Accept": "application/json",
},
)
with urllib.request.urlopen(request, timeout=30) as response:
body = response.read()
Node.js
curl --fail --silent --show-error https://api.barflab.io/openapi.yaml -o openapi.yaml
docker run --rm -v "$PWD:/local" openapitools/openapi-generator-cli:v7.24.0 generate \
-i /local/openapi.yaml -g typescript-fetch -o /local/generated/barflab-node
Node.js HTTP
const response = await fetch(
"https://api.barflab.io/v1/pets",
{
headers: {
Authorization: `Bearer ${process.env.BARFLAB_TOKEN}`,
Accept: "application/json",
},
signal: AbortSignal.timeout(30_000),
},
);
const body = await response.json();