Python FastAPI là gì? Vì sao nên chọn FastAPI

Giới thiệu

Nhu cầu phát triển theo mô hình microservice ngày càng phổ biến, nếu lập trình Python, chắc ai cũng sẽ biết tới 3 framework Django, Flask và FastAPI.

Python FastAPI là gì?

FastAPI là nền tảng thiết kế, lập trình xây dựng API cực kỳ nhanh trên cả 2 phương diện phát triển và thực thi trên Python 3.6+.

Từ Python 3.6+ thì bạn đã có thể sử dụng cú pháp await/async để chạy code bất đồng bộ, vì lý do này các framework trên Python sẽ đạt được hiệu năng cao, FastAPI là một trong số Python framework nhanh nhất hiện nay.

Lý do chọn FastAPI

FastAPI là một micro framework khá mới, chỉ vừa được release năm 2018. Github của framework này hiện tính đến tháng 1/2021 đang đạt 25,4k star, tuy nhiên do được áp dụng khá nhiều công nghệ mới nên có FastAPI có vài điểm mạnh mà mình cảm thấy khá phù hợp để sử dụng phát triển project:

  • High performance Do được base trên 2 lib khá mạnh ở thời điểm hiện tại của python là Pydantic và Starlette nên FastAPI sở hữu hiệu suất cao nhất trong tất cả các framework Python hiện nay, bạn có thể tham khảo so sánh hiệu năng giữa các framework tại https://www.techempower.com/ 
  • Development Speed Được hỗ trợ tích hợp sẵn giao diện Swagger – OpenAPI kèm theo cách code khá đơn giản nên lập trình có thể release function rất nhanh mà vẫn có document đầy đủ, đây là lợi thế có thể nói là quan trọng nhất của FastAPI so với các Framework khác. Dưới đây là một đoạn code in ra dòng text healthcheck
import uvicorn
from fastapi import FastAPI
from pydantic import BaseModel


class ResponseSchemaBase(BaseModel):
    code: str = '00'
    message: str = ''

app = FastAPI()

@app.post("/health-check", response_model=ResponseSchemaBase)
async def health_check():
    return {"message": "Health check success"}

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)
  • Bất đồng bộ Hiện tại bất đồng bộ đã được hỗ trợ từ phiên bản Django 3.x nhưng ngay từ khi release, FastAPI mặc định đã hỗ trợ developer Async, cũng vì vậy mà FastAPI chỉ có thể sử dụng với python3.6 trở lên

So sánh 3 Framework Python là Django, Flask and FastAPI

Dưới đây là bảng so sánh giữa 3 Framework Django, Flask và FastAPI:

DjangoFlaskFastAPI
CommunityCộng đồng của Django hiện tại khá lớn và lâu đời, vì vậy số lượng lib hỗ trợ cho Django có thể nói là nhiều nhất ở thời điểm hiện tạiCộng đồng của Flask hiện tại cũng lớn nhưng không bằng Django, bởi vậy số lượng lib cũng hạn chế hơn DjangoCộng đồng của FastAPI là khá mới, do vậy số lượng lib hỗ trợ khá ít
Python versionAll version: 2x, 3xAll version: 2x, 3xOnly python3.x
PerformanceDo hỗ trợ nhiều feature nên perfomance của Django không được caoPerformance khá caoLà framework có hiệu năng cao nhất trong các framework python hiện tại
ORMDjango ORMFlask-sqlachemySqlachemy
AsyncHỗ trợ từ Django 3.xChưa hỗ trợTương thích hoàn toàn
Builtin Admin UIKhôngKhông
Project FrameCó, chỉ cần run python manage startapp yourappKhôngKhông
Python shellKhông – đây là hạn chế của một microframework so với các framework thực thụ
OpenAPI documentPhổ biến nhất là sử dụng Django-rest-framework, với Swagger thì dùng django-rest-swagger với python2.x, dùng drf-yasg với python3.xSử dụng Flask-restplusMặc định đã tích hợp sẵn Swagger và Redoc

Tham khảo: https://viblo.asia/p/vi-sao-chon-fastapi-gGJ59M6D5X2

Viết một bình luận