Dasar-Dasar REST API untuk Pengembang Agen
Metode HTTP, kode status, header, dan format permintaan/respons JSON.
Dasar-Dasar REST API untuk Pengembang Agen adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.
Apa Itu Permintaan HTTP?
Setiap agen yang terhubung ke layanan eksternal menggunakan HTTP — bahasa web. Permintaan HTTP memiliki tiga bagian utama: sebuah metode, sebuah URL, serta header dan badan opsional.
Anggap metode sebagai kata kerja yang memberi tahu server tindakan yang Anda inginkan, dan URL sebagai alamat sumber daya tersebut.
import requests
# A simple GET request to a public API
response = requests.get('https://api.example.com/users')
print(response.status_code) # 200
print(response.text) # raw JSON stringGET — Mengambil Data
GET mengambil data dari server. Metode ini tidak boleh mengubah apa pun. Agen menggunakan GET untuk membaca profil pengguna, mengambil daftar tugas, atau mengambil data konfigurasi.
Anda dapat meneruskan parameter dalam URL sebagai string kueri menggunakan argumen params.
import requests
# Fetch users filtered by role
params = {'role': 'admin', 'page': 1, 'limit': 10}
response = requests.get(
'https://api.example.com/users',
params=params
)
# URL becomes: /users?role=admin&page=1&limit=10
data = response.json()
print(data['users'])POST — Membuat Sumber Daya
POST mengirimkan data ke server untuk membuat sumber daya baru. Agen menggunakan POST untuk mengirimkan tugas, mengirim pesan, atau memicu tindakan. Data ditempatkan di badan permintaan sebagai JSON.
Selalu tetapkan header Content-Type: application/json — sebagian besar API mewajibkannya.
import requests
import json
payload = {
'title': 'Research competitors',
'assignee': 'agent-001',
'priority': 'high'
}
response = requests.post(
'https://api.example.com/tasks',
json=payload # sets Content-Type automatically
)
print(response.status_code) # 201 Created
new_task = response.json()
print('Created task ID:', new_task['id'])PUT dan PATCH — Memperbarui Data
PUT mengganti seluruh sumber daya dengan data baru. PATCH hanya memperbarui bidang tertentu. Agen menggunakan PUT ketika memiliki objek lengkap yang telah diperbarui, dan PATCH untuk perubahan sebagian seperti memperbarui status tugas.
import requests
task_id = '42'
# PATCH: only update the status field
response = requests.patch(
f'https://api.example.com/tasks/{task_id}',
json={'status': 'completed'}
)
print(response.status_code) # 200
# PUT: replace the whole task object
full_task = {
'title': 'Research competitors',
'assignee': 'agent-001',
'priority': 'low',
'status': 'completed'
}
response = requests.put(
f'https://api.example.com/tasks/{task_id}',
json=full_task
)
print(response.status_code) # 200DELETE — Menghapus Sumber Daya
DELETE menghapus sumber daya dari server. Agen menggunakan DELETE untuk membersihkan data sementara, menghapus tugas yang telah diproses, atau membatalkan pekerjaan terjadwal. Sebagian besar permintaan DELETE tidak memiliki badan.
Penghapusan yang berhasil biasanya mengembalikan 204 No Content — tidak ada badan dalam respons.
import requests
task_id = '42'
response = requests.delete(
f'https://api.example.com/tasks/{task_id}'
)
if response.status_code == 204:
print('Task deleted successfully')
elif response.status_code == 404:
print('Task not found — already deleted?')
else:
print('Unexpected status:', response.status_code)Kode Status: Keberhasilan 2xx
Kode status memberi tahu agen Anda apakah suatu permintaan berhasil atau gagal. Rentang 2xx berarti berhasil:
200 OK— GET/PUT/PATCH mengembalikan data201 Created— POST membuat sumber daya baru204 No Content— DELETE berhasil, tidak ada badan yang dikembalikan
Selalu periksa kode status sebelum memproses badan respons.
import requests
response = requests.post(
'https://api.example.com/tasks',
json={'title': 'New task'}
)
if response.status_code == 201:
task = response.json()
print('Created:', task['id'])
elif response.status_code == 200:
print('Updated existing resource')
else:
print('Unexpected code:', response.status_code)Kode Status: Kesalahan Klien 4xx
Kesalahan 4xx berarti agen Anda mengirim permintaan yang tidak valid. Beberapa kesalahan umum:
400 Bad Request— JSON tidak valid atau bidang wajib tidak ada401 Unauthorized— kunci API tidak ada atau tidak valid404 Not Found— sumber daya tidak ada429 Too Many Requests— batas laju terlampaui
Kesalahan ini mengharuskan agen Anda memperbaiki permintaan, bukan mengulanginya secara membabi buta.
import requests
response = requests.get(
'https://api.example.com/tasks/9999',
headers={'Authorization': 'Bearer YOUR_KEY'}
)
if response.status_code == 401:
print('AUTH ERROR: Check your API key')
elif response.status_code == 404:
print('Task not found')
elif response.status_code == 429:
retry_after = response.headers.get('Retry-After', 60)
print(f'Rate limited. Wait {retry_after}s')
elif response.status_code == 400:
print('Bad request:', response.json().get('error'))Kode Status: Kesalahan Server 5xx
Kesalahan 5xx berarti terjadi masalah di sisi server — agen Anda tidak melakukan kesalahan. Beberapa kesalahan umum:
500 Internal Server Error— bug atau kerusakan server502 Bad Gateway— kegagalan layanan hulu503 Service Unavailable— server kelebihan beban atau sedang tidak aktif
Kesalahan ini aman untuk dicoba lagi setelah menunggu sebentar.
import requests
import time
def get_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code < 500:
return response # success or client error
wait = 2 ** attempt
print(f'Server error {response.status_code}, retrying in {wait}s...')
time.sleep(wait)
return response # return last response after retriesHeader Permintaan
Header membawa metadata dalam setiap permintaan. Header yang paling penting untuk agen meliputi:
Content-Type: application/json— memberi tahu server bahwa badan Anda berupa JSONAuthorization: Bearer TOKEN— mengautentikasi permintaan AndaAccept: application/json— memberi tahu server bahwa Anda mengharapkan JSON sebagai responsUser-Agent— mengidentifikasi klien Anda (beberapa API mewajibkannya)
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-proj-abc123xyz',
'Accept': 'application/json',
'User-Agent': 'MyAgent/1.0'
}
response = requests.post(
'https://api.example.com/analyze',
headers=headers,
json={'text': 'Analyze this document'}
)
print(response.json())Badan Permintaan dan Respons JSON
Sebagian besar API modern bertukar data dalam format JSON. Saat mengirim data, gunakan json=payload dalam requests (kode ini melakukan serialisasi dan menetapkan header secara otomatis). Saat menerima data, panggil response.json() untuk menguraikan badan menjadi kamus Python.
Selalu validasi bahwa kunci yang diharapkan ada sebelum mengaksesnya.
import requests
# Send JSON body
response = requests.post(
'https://api.example.com/summarize',
json={
'content': 'Long article text here...',
'max_length': 150,
'format': 'bullet_points'
}
)
# Parse JSON response
result = response.json()
# Always check keys exist
summary = result.get('summary', 'No summary returned')
tokens_used = result.get('usage', {}).get('total_tokens', 0)
print('Summary:', summary)
print('Tokens used:', tokens_used)Menyatukan Semuanya
Agen yang ditulis dengan baik membungkus panggilan API dengan pemilihan metode, header yang tepat, pemeriksaan kode status, dan penguraian JSON dalam fungsi pembantu yang rapi. Dengan begitu, setiap interaksi API menjadi konsisten dan mudah ditelusuri ketika terjadi masalah.
Gunakan objek Session untuk menggunakan kembali koneksi dan berbagi header di antara beberapa permintaan.
import requests
class APIClient:
def __init__(self, base_url, api_key):
self.base_url = base_url
self.session = requests.Session()
self.session.headers.update({
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
'Accept': 'application/json'
})
def get(self, path, params=None):
r = self.session.get(f'{self.base_url}{path}', params=params)
r.raise_for_status()
return r.json()
def post(self, path, payload):
r = self.session.post(f'{self.base_url}{path}', json=payload)
r.raise_for_status()
return r.json()
# Usage
client = APIClient('https://api.example.com', 'sk-proj-abc123')
tasks = client.get('/tasks', params={'status': 'open'})
new_task = client.post('/tasks', {'title': 'Write report'})Pemeriksaan Singkat: Metode HTTP
Uji pemahaman Anda tentang metode HTTP dan kode status.
Ringkasan Dasar-Dasar HTTP
Anda kini mengetahui dasar HTTP yang menjadi tumpuan setiap agen:
- GET mengambil, POST membuat, PUT/PATCH memperbarui, dan DELETE menghapus
- 2xx = berhasil, 4xx = kesalahan agen Anda, 5xx = kesalahan server
- Header membawa autentikasi (
Authorization: Bearer) dan format (Content-Type: application/json) - Gunakan
response.json()untuk menguraikan badan dan.get()untuk mengakses bidang dengan aman - Objek
Sessionberbagi header dan koneksi di antara berbagai permintaan
Dengan dasar-dasar ini yang sudah kokoh, Anda dapat menghubungkan agen ke API REST apa pun dengan percaya diri.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar REST API untuk Pengembang Agen” gratis?
Ya — teks lengkap “Dasar-Dasar REST API untuk Pengembang Agen” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dasar-Dasar REST API untuk Pengembang Agen”?
Metode HTTP, kode status, header, dan format permintaan/respons JSON. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Agents?
Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Dasar-Dasar REST API untuk Pengembang Agen” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?
Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar REST API untuk Pengembang Agen
- Autentikasi: Kunci API dan OAuth
- Menangani Respons dan Error API
- Pembatasan Laju dan Logika Percobaan Ulang