Apa yang paling kamu suka dari menjadi seorang data scientist? Sudah pasti membuat model dan melakukan fine-tuning untuk mendapatkan hasil yang optimal. Namun apa artinya model yang bagus jika tidak pernah digunakan.
Untuk memproduksi model machine learning, pendekatan yang dilakukan pada umumnya adalah dengan membungkusnya dalam REST API dan menggunakannya sebagai microservices. Salah satu framework yang banyak digunakan untuk membuat API adalah Flask.
Alasan utama Flask banyak digunakan adalah karena kesederhanaannya. Pada umumnya, kita hanya menggunakan API untuk melakukan model prediksi, sehingga kita tidak memerlukan arsitektur yang kompleks (seperti Django). Alasan lainnya adalah karena Flask ditulis dalam bahasa Python, dimana merupakan bahasa yang umum digunakan untuk melakukan pemodelan machine learning.
Namun, jika kamu ingin membuat REST API dengan input yang jelas dan statis, serta tervalidasi, kamu harus memasukan beberapa package/library tambahan dari beberapa pihak ketiga yang tidak saling bekerja sama satu sama lain dan kamu harus membuat kode tambahan agar semuanya berjalan.
Hal inilah yang menyebabkan saya mencari alternatif untuk kebutuhan saya, dimana akhirnya saya menemukan sebuah framework yang bernama FastAPI dan itu menjadi framework favorit saya yang baru. Berikut merupakan alasan mengapa saya menggunakan FastAPI.
API Documentation
Hal pertama yang saya perhatikan dari FastAPI ini adalah dokumentasinya. FastAPI mempunyai dokumentasi yang sangat luas dan contoh yang kaya, yang membuat segalanya lebih mudah. Jika kamu perlu mencari sesuatu tentang FastAPI, kamu biasanya tidak perlu mencari di tempat lain.
Selain itu, FastAPI akan menggenerate secara otomatis dokumentasi API interaktif dari program yang sedang kita jalankan. Sehingga kita tidak perlu menulis sendiri dokumentasi API yang kita buat. Seperti yang kita tahu menulis dokumentasi API sangat menjengkelkan.
Berikut merupakan contoh tampilan dari dokumentasi API (provided by Swagger UI)

Dan juga disediakan alternatif pendokumentasian otomatis (provided by ReDoc)

Untuk mendefinisikan skema yang dibuat, itu menggunakan Pydantic, yang merupakan library Python luar biasa lainnya, digunakan untuk validasi data. Tujuannya adalah untuk memvalidasi input yang masuk ke fastAPI. Jika inputan/requestnya salah, maka kode kesalahan yang sesuai akan dikembalikan.
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
is_offer: bool = None
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
@app.put("/items/{item_id}")
def create_item(item_id: int, item: Item):
return {"item_name": item.name, "item_id": item_id}
FastAPI has Ruined Flask Forever for Me
Sesuai dengan namanya, ini memang FastAPI. Berdasarkan data dari techempower benchmark, FastAPI mengalahkan setiap framework dalam hal kinerja. Dimana kerangka kerja yang paling umum digunakan seperti Flask dan Django tertinggal di belakang.

Yeah, it blazingly fast.
Asynchronous
Salah satu kekurangan dari Flask adalah kurangnya dukungan Asyncio. Fitur yang paling menarik dari FastAPI adalah ia mendukung kode asinkron di luar kotak menggunakan kata kunci Python async / await.
FastAPI mendukung asyncio secara default, yang berarti saya sekarang dapat menggunakan satu framework saja untuk semua endpoints saya.
Yang harus kita lakukan hanyalah mendeklarasikan endpoints dengan cara seperti ini:
@app.get('/book')
async def read_book():
book = await get_book()
return book
Kesimpulannya, FastAPI adalah framework web cepat dengan dukungan untuk kode asinkron dan dokumentasi yang sangat baik dan saya sangat menyarankan kamu untuk mencobanya.
Kamu tertarik menggunakan FastAPI? Jika kamu ingin memulai menggunakan FastAPI, ada beberapa sumber yang sangat bagus untuk dijadikan referensi. Berikut beberapa di antaranya:
- First Steps — FastAPI — The documentation of FastAPI itself
- High-performing Apps with Python — A FastAPI Tutorial by Zubair Ahmed– A very detailed tutorial on how to build secure Rest APIs with database communication and authentication.
- Deploying and Hosting a Machine Learning Model with FastAPI and Heroku by Michael Herman — A detailed tutorial on how to serve ML models using FastAPI from creation to deployment, with open source example in GitHub.




