Operasi CRUD sangat penting dalam setiap aplikasi web yang melibatkan penyimpanan dan pengambilan data. Operasi ini memungkinkan pengguna untuk membuat catatan baru, mengambil catatan yang sudah ada, memperbarui catatan yang sudah ada, dan menghapus catatan dari database.
FastAPI memudahkan implementasi operasi CRUD dengan menyediakan cara yang sederhana dan intuitif untuk menentukan endpoint API dan menangani permintaan HTTP. Ia memanfaatkan petunjuk tipe Python untuk secara otomatis menghasilkan dokumentasi API interaktif dan melakukan validasi data, menjadikannya alat yang ampuh untuk membangun API yang kuat dan terdokumentasi dengan baik.

Dalam postingan ini, kita akan menjelajahi cara mengimplementasikan operasi CRUD dengan cepat menggunakan FastAPI. Kita akan mulai dengan menyiapkan FastAPI dan database, kemudian melanjutkan untuk membuat endpoint API untuk operasi CRUD. Kita juga akan membahas implementasi operasi create, read, update, dan delete, serta pengujian dan validasi operasi ini. Jadi, mari kita mulai dan menyelami dunia FastAPI dan operasi CRUD!
What is CRUD in FastAPI?
Di FastAPI, CRUD mengacu pada operasi dasar yang dapat dilakukan pada data dalam database atau sistem penyimpanan data. CRUD adalah singkatan dari Create, Read, Update, dan Delete, dan mewakili fungsi-fungsi fundamental yang penting untuk mengelola data di sebagian besar aplikasi.

Berikut adalah penjelasan rinci tentang operasi CRUD di FastAPI:
- Create (C): Operasi ini melibatkan penambahan data baru ke database. Di FastAPI, Anda dapat membuat data dengan mengirimkan permintaan POST ke endpoint yang sesuai. Misalnya, untuk menambahkan pengguna baru ke sistem, Anda akan mengirimkan permintaan POST ke endpoint pembuatan pengguna dengan detail pengguna yang relevan di badan permintaan.
- Read (R): Operasi Read adalah tentang mengambil data yang sudah ada dari database. Di FastAPI, Anda dapat melakukan operasi Read menggunakan permintaan GET. Misalnya, jika Anda ingin mengambil semua pengguna atau detail pengguna tertentu, Anda akan mengirimkan permintaan GET ke endpoint masing-masing.
- Update (U): Operasi ini memungkinkan Anda untuk memodifikasi data yang sudah ada di database. Di FastAPI, Anda dapat memperbarui data menggunakan permintaan PUT atau PATCH. Permintaan PUT digunakan untuk memperbarui seluruh sumber daya, sedangkan PATCH digunakan untuk memodifikasi bidang tertentu dari sumber daya. Misalnya, untuk memperbarui informasi pengguna, Anda akan mengirimkan permintaan PUT atau PATCH ke endpoint pengguna dengan detail yang diperbarui.
- Delete (D): Operasi Delete melibatkan penghapusan data dari database. Di FastAPI, Anda dapat menghapus data menggunakan permintaan DELETE. Misalnya, untuk menghapus pengguna dari sistem, Anda akan mengirimkan permintaan DELETE ke endpoint pengguna dengan pengidentifikasi pengguna atau kunci unik.
How to Create CRUD Operations with FastAPI Quickly
Untuk mengimplementasikan fungsionalitas CRUD dengan FastAPI, ikuti langkah-langkah berikut:
Langkah 1: Instal FastAPI: Pastikan Python terinstal di sistem Anda, dan jalankan perintah berikut di baris perintah untuk menginstal FastAPI:
pip install fastapi
Langkah 2: Buat Aplikasi FastAPI: Buat file Python baru (misalnya, main.py) dan impor modul dan pustaka yang diperlukan:
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
Langkah 3: Definisikan Model Data: Gunakan Pydantic untuk mendefinisikan model data. Contohnya:
class Item(BaseModel):
id: int
name: str
price: float
Langkah 4: Buat Rute dan Handler CRUD: Gunakan FastAPI untuk membuat rute dan fungsi penanganan yang sesuai untuk operasi CRUD. Berikut adalah contohnya:
items = []
@app.get("/items", response_model=List[Item])
async def read_items():
return items
@app.post("/items", response_model=Item)
async def create_item(item: Item):
items.append(item)
return item
@app.put("/items/{item_id}", response_model=Item)
async def update_item(item_id: int, item: Item):
items[item_id] = item
return item
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
del items[item_id]
return {"message": "Item deleted"}
Langkah 5: Jalankan Aplikasi: Untuk menjalankan aplikasi FastAPI dan menguji fungsionalitas APIRouter, gunakan server ASGI seperti uvicorn. Pastikan Anda telah menginstal uvicorn:
pip install uvicorn
Di editor IDE Anda, buka terminal, navigasikan ke direktori tempat file main.py disimpan, dan jalankan perintah berikut untuk memulai aplikasi:
uvicorn main:app --reload
Ini akan memulai aplikasi FastAPI pada port default (biasanya 8000) dengan auto-reloading diaktifkan, sehingga aplikasi akan memuat ulang secara otomatis ketika Anda membuat perubahan kode.
Langkah 6: Uji Operasi CRUD
Gunakan alat klien HTTP (misalnya, cURL atau Apidog) untuk mengirim permintaan dan menguji fungsionalitas Create, Read, Update, dan Delete. Berikut adalah beberapa contoh permintaan:
- Buat item baru: Kirim permintaan POST dengan badan permintaan untuk membuat item baru.
POST http://localhost:8000/items
{
"id": 1,
"name": "Apple",
"price": 0.5
}

- Dapatkan semua item: Kirim permintaan GET untuk mengambil semua item.
GET http://localhost:8000/items

- Perbarui item: Kirim permintaan PUT dengan badan permintaan untuk memperbarui item.
GET http://localhost:8000/items

- Hapus item: Kirim permintaan DELETE untuk menghapus item.
DELETE http://localhost:8000/items/1

Terakhir, kita dapat menulis pengujian untuk operasi delete di Apidog. Kita dapat mensimulasikan permintaan DELETE ke endpoint delete dan memeriksa apakah kode status respons adalah 200 (menunjukkan penghapusan berhasil). Kita kemudian dapat mencoba mengambil data yang dihapus dari database dan memastikan bahwa data tersebut tidak ada.
Dengan menulis pengujian ini, kita dapat memastikan bahwa operasi CRUD kita berfungsi dengan benar dan menangani berbagai skenario, seperti input yang tidak valid atau data yang tidak ada.
Bonus Tips
Gunakan dukungan IDE seperti Visual Studio Code untuk meningkatkan efisiensi pengembangan dengan fitur pelengkapan otomatis kode, pemeriksaan kesalahan, dan debugging.
- Saat menggunakan FastAPI, manfaatkan dukungan IDE seperti Visual Studio Code untuk meningkatkan efisiensi pengembangan dengan fitur pelengkapan otomatis kode, pemeriksaan kesalahan, dan debugging.
- Atur basis kode Anda dengan memisahkan rute dan fungsi penanganan ke dalam modul yang berbeda, mempromosikan pemeliharaan dan skalabilitas. Manfaatkan dukungan async FastAPI untuk operasi asinkron untuk meningkatkan kinerja dan kemampuan konkurensi.
- Pastikan keamanan API dengan mekanisme otentikasi dan otorisasi yang tepat. Gunakan model Pydantic untuk validasi dan serialisasi data untuk menjaga konsistensi data dan menangani kesalahan secara efektif. Terapkan CORS untuk berbagi sumber daya lintas asal jika diperlukan.
- Buat pengujian unit dan integrasi yang komprehensif untuk memastikan keandalan dan fungsionalitas API. Tangani kesalahan dengan baik dengan penanganan pengecualian FastAPI dan respons kesalahan khusus. Pantau kinerja dengan log dan profiler, dan perbarui FastAPI dan dependensinya untuk perbaikan bug dan fitur baru.
Dengan mengikuti praktik ini, Anda dapat mengembangkan API yang kuat dan efisien dengan FastAPI, merampingkan proses pengembangan dan penerapan Anda.