Torna al blog

Per iniziareGuida

Prima richiesta API in VS Code: un file .http, chiave da .env

Invia la tua prima chat completion a CheapTokens da VS Code con l'estensione REST Client, tieni la chiave fuori da git e trova la risposta e l'utilizzo dei token.

Di CheapTokens TeamPubblicato il 5 min di lettura

File di richiesta VS Code con un POST all'API CheapTokens e la chiave letta da .env
In questa pagina
  1. Installa l'estensione e metti la chiave in .env
  2. Scrivi il file .http
  3. Inviala e trova la risposta
  4. Cambia il modello in una riga
  5. Se non funziona

Puoi inviare la tua prima richiesta a CheapTokens senza uscire da VS Code: installa l'estensione REST Client, scrivi un file .http, tieni la chiave in un .env accanto ad esso e premi Ctrl+Alt+R. La risposta si apre in un pannello accanto al file, e il testo e il conteggio dei token sono due campi che puoi trovare a colpo d'occhio.

Se hai già un editor aperto, questo batte installare un'altra app solo per dire "Ciao" a un modello. E la richiesta resta in un file di testo semplice, così puoi rieseguirla domani o fare il commit (senza la chiave) per un collega. Altri modi per inviare la stessa richiesta sono in Prima richiesta con HTTPie e La tua prima richiesta API con CheapTokens.

Installa l'estensione e metti la chiave in .env#

REST Client è l'estensione humao.rest-client. In VS Code premi F1, digita ext install, cerca rest-client e installala. (Verificato rispetto al README dell'estensione il 9 novembre 2026.)

Ora la chiave. Il README descrive {{$dotenv NAME}}: legge un valore da un file .env che si trova nella stessa directory del tuo file .http. È esattamente ciò che vogliamo, perché la chiave non appare mai nel file della richiesta. Crea una cartella per l'esperimento e mettici dentro due file.

.env:

text
CHEAPTOKENS_API_KEY=paste-your-key-here

.gitignore:

text
.env

Crea la chiave nel tuo account CheapTokens e incollala al posto del segnaposto. Perché la riga di ignore è importante, e cosa fare se una chiave finisce mai in un commit, è in Memorizzare una chiave API in modo sicuro.

Metti in ordine

Metti la configurazione nell'ordine giusto

  1. Installa l'estensione REST Client
  2. Aggiungi .env a .gitignore
  3. Metti la chiave in .env accanto al file .http
  4. Premi Ctrl+Alt+R sulla richiesta

Scrivi il file .http#

Crea first.http nella stessa cartella. La sintassi è breve: una riga di richiesta (POST URL HTTP/1.1, il metodo è opzionale e predefinito a GET), righe di intestazione Name: value fino alla prima riga vuota, poi il corpo dopo una riga vuota. Le richieste sono separate da una riga di tre o più #.

http
### First request
POST https://api.cheaptokens.dev/v1/chat/completions
Authorization: Bearer {{$dotenv CHEAPTOKENS_API_KEY}}
Content-Type: application/json

{
  "model": "zai-org/GLM-5.3-Flash",
  "messages": [{ "role": "user", "content": "Hello" }]
}

Tre cose da notare. L'indirizzo è la base dell'API CheapTokens, https://api.cheaptokens.dev/v1, più /chat/completions. Il modello è scritto con il suo id completo, zai-org/GLM-5.3-Flash: un modello con contesto da 390K che può scrivere fino a 8.192 token per risposta. E la chiave è solo un segnaposto {{$dotenv …}}, quindi questo file è sicuro da committare.

La chiave vive in .env; first.http contiene solo un riferimento ad essa
La chiave vive in .env, first.http contiene solo un riferimento ad essa

Se la tua configurazione non rileva il file .env, il README descrive anche {{$processEnv NAME}}, che legge una variabile dall'ambiente della tua macchina.

Inviala e trova la risposta#

Clicca "Send Request" sopra la riga della richiesta, o premi Ctrl+Alt+R (Cmd+Alt+R su macOS). Puoi anche fare clic con il tasto destro o usare F1. La risposta si apre in un pannello separato. Se preferisci una normale scheda dell'editor in cui puoi cercare e comprimere, imposta rest-client.previewResponseInUntitledDocument a true nelle impostazioni.

La risposta è il JSON standard delle chat-completions. Due punti contano il primo giorno:

  • choices[0].message.content è il testo della risposta. Accanto ad esso, finish_reason ti dice perché il modello si è fermato. length significa che la risposta è stata troncata dal limite di token.
  • usage contiene i conteggi dei token per questa richiesta: i token che hai inviato e i token che il modello ha scritto. Questo è ciò per cui paghi, quindi guardalo ogni volta.
Da Ctrl+Alt+R al testo della risposta e al campo usage
Dove guardare nel pannello della risposta
Provalo tu stessoProvalo: come vedi che una risposta è stata troncata?Mostra risposta

Guarda finish_reason nella risposta. Se dice length, il modello ha raggiunto il limite di token prima di finire. Aggiungi una riga "max_tokens" al corpo, o aumentala, e invia di nuovo.

Per farti un'idea dei costi: supponi di inviare questa richiesta 100 volte con circa 1.000 token in ingresso e 300 in uscita (un'ipotesi per l'esempio, non una misurazione).

Modello Per richiesta 100 richieste OpenRouter, 100 richieste
GLM-5.3-Flash $0.000032 $0.0032 $0.0058
DeepSeek-V4-Flash $0.000045 $0.0045 $0.0112
MiniMax-M2.7 $0.000095 $0.0095 $0.114

1000 token di input e 300 token di output per richiesta. I prezzi per 1M di token sono attuali e cambiano insieme alle nostre tariffe; la colonna OpenRouter mostra i prezzi di riferimento per lo stesso carico di lavoro.

La tabella mostra il prezzo live di quel carico di lavoro su ciascun modello, con una colonna OpenRouter per confronto. Un piccolo "Ciao" costa molto meno.

Cambia il modello in una riga#

La parte comoda di un file di testo semplice: cambia una riga e invia di nuovo. Sostituisci l'id del modello con deepseek-ai/DeepSeek-V4-Flash-0731 (contesto da 380K, fino a 32.768 token per risposta, un prezzo a qualsiasi ora del giorno, in totale più economico di OpenRouter contando insieme input e output) e premi di nuovo Ctrl+Alt+R. Stesso corpo, stessa chiave, una risposta diversa e un usage diverso.

Vuoi tenerli entrambi? Incolla una seconda richiesta sotto una riga ### con l'altro id del modello. Ogni richiesta ha il proprio link Send Request, così puoi eseguirle una dopo l'altra e confrontare. Non sei sicuro di un id? Elenca i modelli con GET /v1/models mostra le stringhe esatte.

Se non funziona#

Abbina le coppie

Abbina il sintomo alla causa

  • 401 UnauthorizedLa chiave è vuota o sbagliata, spesso perché .env non è nella stessa cartella del file .http
  • 404 Not FoundUn errore di battitura nel percorso dell'URL o nell'id del modello
  • La risposta si ferma a metà frase, finish_reason è lengthÈ stato raggiunto il limite di token, aumenta max_tokens

Per i primi due, API 401 o 404: chiave, base URL o id del modello sbagliati illustra i controlli. I dettagli completi della richiesta sono nella documentazione di CheapTokens, e i prezzi attuali sono nella pagina dei prezzi.

Questo è l'intero flusso di lavoro: un file, una chiave in .env, una scorciatoia. Da qui puoi aggiungere un messaggio di sistema, cambiare max_tokens, o trasformare lo stesso corpo in codice in qualsiasi linguaggio.