Dasar API: Request Programatik Pertamamu
Sesi 3.5 · ~5 menit baca
API call itu pesan terstruktur. Kamu mengisi formulir, bukan ngobrol. Formulirnya bilang: siapa kamu (autentikasi), apa yang kamu mau (prompt dan parameter), dan kirim ke mana (endpoint). Respons-nya juga pesan terstruktur: ini yang model generate, ini berapa token yang terpakai, dan ini kenapa berhenti.
Sesi ini membahas anatomi satu API request dan respons. Belum ada kode. Cuma strukturnya.
Request: Yang Kamu Kirim
Setiap API request punya tiga bagian: URL yang kamu tuju, headers (metadata soal request-nya), dan body (isi sebenarnya dari request kamu).
(endpoint)"] A --> C["Headers
(autentikasi +
tipe konten)"] A --> D["Body
(model + system prompt +
messages + parameter)"] B --> E["POST https://api.anthropic.com/v1/messages"] C --> F["x-api-key: sk-ant-...
content-type: application/json"] D --> G["model: claude-sonnet-4-...
system: Instruksi kamu
messages: user prompt
max_tokens: 1024"] style A fill:#2a2a28,stroke:#c8a882,color:#ede9e3
URL (Endpoint)
URL memberitahu request kamu mau ke mana. Untuk text generation, setiap provider punya satu endpoint utama. Kamu kirim POST request ke sana. POST artinya "aku kirim data ke kamu dan mau sesuatu balik." Ini beda dari GET, yang artinya "kasih aku informasi aja." Setiap text generation LLM pakai POST karena kamu kirim prompt dan terima teks yang di-generate.
Headers
Headers adalah pasangan key-value yang ikut bersama request kamu tapi bukan bagian dari prompt. Isinya metadata: siapa kamu (API key kamu), format apa yang kamu kirim (JSON), dan format apa yang kamu harapkan balik (JSON). Headers itu seperti amplop di sekeliling surat. Penerima baca amplop-nya untuk tahu cara menangani surat sebelum membukanya.
Body
Body adalah isi sebenarnya dari request kamu. Untuk LLM API, body adalah objek JSON berisi pilihan model, system prompt, pesan percakapan, dan parameter generation.
| Field Body | Tujuan | Contoh Nilai |
|---|---|---|
| model | Model mana yang dipakai | "claude-sonnet-4-20250514" |
| system | Instruksi persisten | "Kamu technical writer. Ga boleh hedging. Ga boleh filler." |
| messages | Percakapan (prompt user + respons sebelumnya) | [{"role": "user", "content": "Tulis deskripsi produk untuk..."}] |
| max_tokens | Panjang respons maksimum | 1024 |
| temperature | Level keacakan | 0.3 |
Respons: Yang Kamu Terima Balik
Server memproses request kamu dan kirim balik respons. Respons juga punya struktur: status code (berhasil?), headers (metadata), dan body (konten yang di-generate plus data usage).
Status Code
Status code adalah angka tiga digit yang kasih tahu kamu apa yang terjadi. Kamu perlu tahu empat:
| Kode | Arti | Yang Harus Dilakukan |
|---|---|---|
| 200 | Berhasil | Parse body respons untuk konten kamu |
| 400 | Request salah (input kamu keliru) | Cek body request kamu untuk error |
| 401 | Ga terotorisasi (API key salah) | Cek API key kamu |
| 429 | Rate limited (terlalu banyak request) | Tunggu dan coba lagi, atau kurangi concurrency |
Body Respons
Kalau berhasil, body respons berisi teks yang di-generate dan metadata soal generation-nya. Field utama adalah content (apa yang model generate), statistik usage (berapa token yang dikonsumsi), dan stop reason (kenapa model berhenti generate).
Teks yang di-generate"] A --> C["usage
input_tokens: 350
output_tokens: 512"] A --> D["stop_reason
end_turn atau max_tokens"] A --> E["model
Versi persis yang dipakai"] style B fill:#2a2a28,stroke:#6b8f71,color:#ede9e3 style C fill:#2a2a28,stroke:#c8a882,color:#ede9e3
Stop reason itu penting. "end_turn" artinya model selesai secara natural. "max_tokens" artinya terpotong karena kena batas token kamu. Kalau output kamu terpotong, naikkan max_tokens.
Alur Lengkap
Digabungkan semuanya: kamu menyusun request dengan API key di headers dan prompt di body. Kamu kirim sebagai POST ke endpoint provider. Server memproses dan mengembalikan respons JSON dengan teks yang di-generate, data usage, dan metadata. Script kamu mem-parse respons, mengekstrak konten, mencatat usage, dan meneruskan konten ke tahap berikutnya di pipeline kamu.
Itu seluruh mekanismenya. Setiap AI content generation, dari satu deskripsi produk sampai batch 500 artikel, mengikuti pola request-response yang sama ini. Kompleksitasnya bukan di API call itu sendiri. Kompleksitasnya di apa yang kamu masukkan ke request (prompt, instruksi sistem, parameter) dan apa yang kamu lakukan dengan respons-nya (quality check, formatting, routing).
Bacaan Lanjutan
- Understanding API Requests and Responses (Being Technical Writer)
- What Are REST API Headers? A Complete Guide (BrowserStack)
- Messages API Reference (Anthropic Documentation)
- Create Chat Completion (OpenAI API Reference)
Tugas
- Pakai browser kamu, tool seperti Postman, atau perintah curl sederhana, bikin satu API call ke LLM API mana pun. Boleh request paling sederhana: "Bilang halo."
- Tujuannya adalah berhasil mengirim request dan menerima respons di luar web chat interface. Kalau belum punya API key, daftar satu (kebanyakan provider kasih kredit trial gratis).
- Dokumentasikan setiap langkah: URL mana yang kamu tuju? Headers apa yang kamu sertakan? Apa isi body-nya? Status code apa yang kamu terima? Apa isi respons-nya? Dokumentasi ini adalah bukti bahwa kamu paham mekanismenya.