Kembali ke blog

MemulaiPanduan

Permintaan API pertama di VS Code: file .http, kunci dari .env

Kirim chat completion pertama Anda ke CheapTokens dari VS Code dengan ekstensi REST Client, jaga kunci tetap di luar git, dan temukan jawaban serta penggunaan token.

Oleh CheapTokens TeamDiterbitkan 4 menit baca

File permintaan VS Code dengan POST ke API CheapTokens dan kunci dibaca dari .env
Di halaman ini
  1. Pasang ekstensi dan masukkan kunci ke .env
  2. Tulis file .http
  3. Kirim dan temukan jawabannya
  4. Ganti model dalam satu baris
  5. Jika tidak berhasil

Anda dapat mengirim permintaan pertama ke CheapTokens tanpa meninggalkan VS Code: pasang ekstensi REST Client, tulis file .http, simpan kunci di .env di sebelahnya dan tekan Ctrl+Alt+R. Jawabannya terbuka di panel di samping file, dan teks serta jumlah token adalah dua bidang yang bisa Anda temukan sekilas.

Jika Anda sudah memiliki editor yang terbuka, itu lebih baik daripada memasang aplikasi lain hanya untuk menyapa model. Dan permintaannya tetap berada di file teks biasa, jadi Anda bisa menjalankannya lagi besok atau meng-commit-nya (tanpa kunci) untuk rekan tim. Cara lain untuk mengirim permintaan yang sama ada di First request with HTTPie dan Your first API request with CheapTokens.

Pasang ekstensi dan masukkan kunci ke .env#

REST Client adalah ekstensi humao.rest-client. Di VS Code tekan F1, ketik ext install, cari rest-client dan pasang. (Diperiksa terhadap README ekstensi pada 9 November 2026.)

Sekarang kuncinya. README menjelaskan {{$dotenv NAME}}: ia membaca nilai dari file .env yang berada di direktori yang sama dengan file .http Anda. Itu persis yang kita inginkan, karena kunci tidak pernah muncul di file permintaan. Buat folder untuk eksperimen dan letakkan dua file di dalamnya.

.env:

text
CHEAPTOKENS_API_KEY=paste-your-key-here

.gitignore:

text
.env

Buat kunci di akun CheapTokens Anda dan tempelkan sebagai pengganti placeholder. Mengapa baris ignore itu penting, dan apa yang harus dilakukan jika kunci pernah masuk ke commit, ada di Store an API key safely.

Urutkan

Susun pengaturan dalam urutan yang benar

  1. Pasang ekstensi REST Client
  2. Tambahkan .env ke .gitignore
  3. Letakkan kunci di .env di sebelah file .http
  4. Tekan Ctrl+Alt+R pada permintaan

Tulis file .http#

Buat first.http di folder yang sama. Sintaksnya singkat: baris permintaan (POST URL HTTP/1.1, metode opsional dan default-nya GET), baris header Name: value hingga baris kosong pertama, lalu body setelah baris kosong. Permintaan dipisahkan oleh baris berisi tiga atau lebih #.

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" }]
}

Tiga hal yang perlu diperhatikan. Alamatnya adalah base API CheapTokens, https://api.cheaptokens.dev/v1, ditambah /chat/completions. Model ditulis dengan id lengkapnya, zai-org/GLM-5.3-Flash: model dengan konteks 390K yang dapat menulis hingga 8.192 token per jawaban. Dan kuncinya hanya placeholder {{$dotenv …}}, jadi file ini aman untuk di-commit.

Kunci berada di .env; first.http hanya berisi referensi ke sana
Kunci berada di .env, first.http hanya berisi referensi ke sana

Jika pengaturan Anda tidak membaca file .env, README juga menjelaskan {{$processEnv NAME}}, yang membaca variabel dari environment mesin Anda sebagai gantinya.

Kirim dan temukan jawabannya#

Klik "Send Request" di atas baris permintaan, atau tekan Ctrl+Alt+R (Cmd+Alt+R di macOS). Anda juga bisa klik kanan atau menggunakan F1. Respons terbuka di panel terpisah. Jika Anda lebih suka tab editor biasa yang bisa dicari dan dilipat, atur rest-client.previewResponseInUntitledDocument ke true di pengaturan.

Responsnya adalah JSON chat-completions standar. Dua tempat penting di hari pertama:

  • choices[0].message.content adalah teks jawaban. Di sebelahnya, finish_reason memberi tahu Anda mengapa model berhenti. length berarti jawaban terpotong oleh batas token.
  • usage berisi jumlah token untuk permintaan ini: token yang Anda kirim dan token yang ditulis model. Inilah yang Anda bayar, jadi lihatlah setiap kali.
Dari Ctrl+Alt+R ke teks jawaban dan bidang usage
Di mana harus melihat di panel respons
Coba sendiriCoba: bagaimana Anda melihat bahwa sebuah jawaban terpotong?Tampilkan jawaban

Lihat finish_reason di respons. Jika tertulis length, model mencapai batas token sebelum selesai. Tambahkan baris "max_tokens" ke body, atau naikkan, lalu kirim lagi.

Untuk merasakan soal biaya: misalkan Anda mengirim permintaan ini 100 kali dengan sekitar 1.000 token masuk dan 300 keluar (asumsi untuk contoh, bukan pengukuran).

Model Per permintaan 100 permintaan OpenRouter, 100 permintaan
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

1.000 token input dan 300 token output per permintaan. Harga per 1 juta token adalah harga saat ini dan berubah seiring tarif kami; kolom OpenRouter menunjukkan harga referensi untuk beban kerja yang sama.

Tabel menunjukkan harga live beban kerja itu pada setiap model, dengan kolom OpenRouter untuk perbandingan. "Hello" yang kecil jauh lebih murah.

Ganti model dalam satu baris#

Bagian praktis dari file teks biasa: ubah satu baris dan kirim lagi. Ganti id model dengan deepseek-ai/DeepSeek-V4-Flash-0731 (konteks 380K, hingga 32.768 token per jawaban, satu harga kapan pun sepanjang hari, secara total lebih murah daripada OpenRouter dengan input dan output dihitung bersama) dan tekan Ctrl+Alt+R sekali lagi. Body sama, kunci sama, jawaban berbeda, dan usage berbeda.

Ingin menyimpan keduanya? Tempel permintaan kedua di bawah baris ### dengan id model lainnya. Setiap permintaan mendapat tautan Send Request sendiri, jadi Anda bisa menjalankannya satu per satu dan membandingkan. Tidak yakin dengan id-nya? List models with GET /v1/models menunjukkan string yang tepat.

Jika tidak berhasil#

Cocokkan pasangan

Cocokkan gejala dengan penyebabnya

  • 401 UnauthorizedKunci kosong atau salah, sering karena .env tidak berada di folder yang sama dengan file .http
  • 404 Not FoundSalah ketik di path URL atau di id model
  • Jawaban berhenti di tengah kalimat, finish_reason adalah lengthBatas token tercapai, naikkan max_tokens

Untuk dua yang pertama, API 401 or 404: wrong key, base URL or model id memandu pemeriksaannya. Detail permintaan lengkap ada di CheapTokens docs, dan harga terkini ada di pricing page.

Itulah seluruh alurnya: satu file, satu kunci di .env, satu pintasan. Dari sini Anda bisa menambahkan pesan sistem, mengubah max_tokens, atau mengubah body yang sama menjadi kode dalam bahasa apa pun.