Kebutuhan akan Istirahat API
HTTP
- Protokol HTTP berjalan melalui TCP
- Protokol HTTP memerlukan koneksi dan memang demikian
- Meminta:
- URL
- Metode/Kata Kerja
- Header
- Tubuh
- Tanggapan
- Kode status
- 1xx (informasi)
- 2xx (sukses)
- 3xx (Pengalihan)
- 4xx (kesalahan sisi klien)
- 5xx (kesalahan sisi server)
- Header
- Tubuh
- Kode status
- Meminta:
API yang tenang
- API yang tenang bukanlah sebuah protokol, melainkan sebuah praktik atau pendekatan yang direkomendasikan
- Restful API (Rest API atau API) memiliki prinsip
Prinsip Desain REST API – Langkah demi Langkah
Langkah 1: Arsitektur Klien-Server
Prinsip: Pemisahan kekhawatiran
Keterangan:
REST membagi tanggung jawab – klien menanganinya antarmuka pengguna (UI/UX)sementara server mengelola data dan logika bisnis. Hal ini memungkinkan keduanya berkembang secara mandiri.
Contoh:
Permintaan aplikasi web (klien). <code>/api/doctorsdan server merespons dengan data JSON.
Langkah 2: Keadaan Tanpa Kewarganegaraan
Prinsip: Tidak ada status sesi di server
Keterangan:
Setiap permintaan klien harus berisi semua informasi yang diperlukan agar server dapat memprosesnya. Server tidak menyimpan konteks sesi antar permintaan.
Contoh:
Setiap permintaan menyertakan token otentikasi (misalnya, JWT di header).
Langkah 3: Kemampuan cache
Prinsip: Aktifkan caching jika diperlukan
Keterangan:
Respons harus menentukan apakah respons dapat disimpan dalam cache untuk ditingkatkan kinerja dan skalabilitas.
Contoh:
Header HTTP seperti Cache-Control: max-age=3600 memberi tahu klien berapa lama mereka dapat menyimpan respons dalam cache.
Langkah 4: Antarmuka Seragam
Prinsip: Interaksi yang konsisten antara klien dan server
Keterangan:
Antarmuka yang seragam menyederhanakan interaksi dan memisahkan klien dari server. REST mencapai hal ini melalui konvensi yang konsisten.
Contoh:
Gunakan metode HTTP standar (GET, POST, PUT, DELETE) dan URI sumber daya yang terdefinisi dengan baik.
Langkah 5: Sistem Berlapis
Prinsip: Gunakan lapisan independen
Keterangan:
Sistem REST dapat mencakup banyak lapisan seperti keamanan, penyeimbangan bebanDan server aplikasi. Setiap lapisan beroperasi secara independen tanpa memerlukan visibilitas penuh ke lapisan lainnya.
Contoh:
Proksi atau gateway menangani autentikasi sebelum meneruskan permintaan ke API backend.
Langkah 6: Kode Sesuai Permintaan (Opsional)
Prinsip: Perluas fungsionalitas klien secara dinamis
Keterangan:
Server dapat mengirimkan kode yang dapat dieksekusi (seperti JavaScript) ke klien untuk memperluas perilaku mereka. Ini opsional dan jarang digunakan di API modern.
Contoh:
Server mengirimkan cuplikan JS untuk dieksekusi oleh browser.
Langkah 7: Berbasis Sumber Daya (Berorientasi Kata Benda)
Prinsip: Fokus pada sumber dayabukan tindakan
Keterangan:
REST API mewakili sumber daya (kata benda) dan bukan tindakan (kata kerja). Metode HTTP menentukan tindakan pada sumber daya ini.
Contoh:/api/patients/123 alih-alih /api/getPatient?id=123
Membangun API Istirahat dalam bahasa Inggris yang sederhana
- Identifikasi kata benda & kata kerja.
- Kata benda menjadi Sumber Daya, Kata Kerja menjadi metode atau sub sumber daya
- Metode:
- MENDAPATKAN:
Retrive or select - MASUKKAN/PATCH:
update - POS:
create - MENGHAPUS:
delete
- MENDAPATKAN:
- Titik akhir:
- Sumber daya yang disebut sebagai pengguna
/api/v1/users- DAPATKAN: Dapatkan semua pengguna
- POST: Buat pengguna baru
/api/v1/users/1- DAPATKAN: Dapatkan pengguna dengan id 1
- PATCH/POST: Perbarui info pengguna
- HAPUS: Hapus pengguna
/api/v1/users/1/orders:- DAPATKAN: Dapatkan semua pesanan pengguna dengan 1
- POST: Buat pesanan untuk pengguna dengan id 1
- Sumber daya yang disebut sebagai pengguna
- Untuk menggunakan REST API, Dokumentasi perlu dipublikasikan untuk ini yang kami miliki
- Untuk menguji api kami menggunakan alat yang disebut tukang pos
LEBAH
- Kami memiliki dua tipe pada catatan yang lebih besar
Mengkonsumsi API dari python
- Mari buat proyek baru dan tambahkan ketergantungan
requests
import requests
BASE_URL = "https://petstore.swagger.io/v2"
PETS_URL = f"{BASE_URL}/pet"
def get_all_pets(status:str="available"):
PET_STATUS_URL = f"{PETS_URL}/findByStatus?status={status}"
response = requests.get(
PET_STATUS_URL,
timeout=30)
print(response)
pets = response.json()
for pet in pets:
if 'id' in pet and 'name' in pet:
print(f"{pet['id']} <==> {pet['name']}")
else:
print(pet)
if __name__ == "__main__":
get_all_pets()
- Latihan: Buat fungsi python sederhana untuk menggunakan api produk dari sini
Membangun Restful Apis menggunakan fastapi
Catatan Ruang Kelas DevOps 25/Okt/2025 – DevOps Langsung dari Quality Thought


