0Pricing
AI Agents · Pelajaran

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 string

GET — 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)  # 200

DELETE — 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 data
  • 201 Created — POST membuat sumber daya baru
  • 204 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 ada
  • 401 Unauthorized — kunci API tidak ada atau tidak valid
  • 404 Not Found — sumber daya tidak ada
  • 429 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 server
  • 502 Bad Gateway — kegagalan layanan hulu
  • 503 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 retries

Header 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 JSON
  • Authorization: Bearer TOKEN — mengautentikasi permintaan Anda
  • Accept: application/json — memberi tahu server bahwa Anda mengharapkan JSON sebagai respons
  • User-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 Session berbagi 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

  1. Dasar-Dasar REST API untuk Pengembang Agen
  2. Autentikasi: Kunci API dan OAuth
  3. Menangani Respons dan Error API
  4. Pembatasan Laju dan Logika Percobaan Ulang
← Kembali ke AI Agents