Πώς να χρησιμοποιήσετε το FastAPI για να κατασκευάσετε υπηρεσίες API υψηλής απόδοσης
Πώς να χρησιμοποιήσετε το FastAPI για να κατασκευάσετε υπηρεσίες API υψηλής απόδοσης
Το FastAPI είναι ένα σύγχρονο, γρήγορο (αποτελεσματικό) πλαίσιο Web, σχεδιασμένο ειδικά για την κατασκευή API. Βασίζεται στις υποδείξεις τύπου Python και υποστηρίζει ασύγχρονο προγραμματισμό, επιτρέποντας στους προγραμματιστές να κατασκευάζουν υπηρεσίες API υψηλής απόδοσης και διαθεσιμότητας με χαμηλή καθυστέρηση. Αυτό το άρθρο θα σας καθοδηγήσει λεπτομερώς για το πώς να χρησιμοποιήσετε το FastAPI για να κατασκευάσετε υπηρεσίες API υψηλής απόδοσης, θα προχωρήσουμε βήμα προς βήμα για να σας βοηθήσουμε να ολοκληρώσετε τη διαδικασία από την προετοιμασία του περιβάλλοντος έως την ανάπτυξη.
Βήμα 1: Προετοιμασία περιβάλλοντος
Πρέπει να βεβαιωθείτε ότι έχετε εγκαταστήσει την Python 3.6+. Αν δεν την έχετε εγκαταστήσει, μπορείτε να επισκεφθείτε την επίσημη ιστοσελίδα της Python για να την κατεβάσετε και να την εγκαταστήσετε.
Εγκατάσταση FastAPI και Uvicorn
Το FastAPI από μόνο του δεν παρέχει υπηρεσία, χρειάζεται έναν διακομιστή ASGI για να φιλοξενηθεί. Εδώ χρησιμοποιούμε το Uvicorn, έναν υψηλής απόδοσης διακομιστή ASGI. Μπορείτε να εγκαταστήσετε το FastAPI και το Uvicorn χρησιμοποιώντας την παρακάτω εντολή:
pip install fastapi uvicorn
Βήμα 2: Δημιουργία βασικού API
Ας δημιουργήσουμε μια απλή εφαρμογή FastAPI.
Δημιουργία αρχείου εφαρμογής
Στον κατάλογο του έργου σας, δημιουργήστε ένα αρχείο Python, όπως το main.py, και γράψτε τον παρακάτω κώδικα:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Γειά σου, Κόσμε!"}
Στον παραπάνω κώδικα, πρώτα εισάγουμε το FastAPI και δημιουργούμε μια παρουσία app. Στη συνέχεια, ορίζουμε μια διαδρομή GET, η οποία επιστρέφει μια απλή JSON απάντηση όταν προσπελάσουμε τη ρίζα /.
Εκκίνηση διακομιστή
Εκκινήστε τον διακομιστή FastAPI σας με την παρακάτω εντολή:
uvicorn main:app --reload
main: αναφέρεται στο όνομα του αρχείου, χωρίς την κατάληξη .py.app: αναφέρεται στην παρουσία FastAPI.--reload: σε λειτουργία ανάπτυξης, ο διακομιστής επανεκκινείται αυτόματα όταν γίνονται αλλαγές στα αρχεία.
Βήμα 3: Ορισμός διαδρομών και μοντέλων δεδομένων
Για να δημιουργήσετε πολύπλοκα API, πρέπει να χρησιμοποιήσετε το Pydantic για να ορίσετε μοντέλα δεδομένων.
Δημιουργία μοντέλου δεδομένων
Προσθέστε το παρακάτω περιεχόμενο στο main.py:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_available: bool = True
Αυτός ο κώδικας χρησιμοποιεί το Pydantic για να δημιουργήσει ένα μοντέλο δεδομένων Item, το οποίο περιλαμβάνει τρία χαρακτηριστικά: το όνομα του προϊόντος, την τιμή και τη διαθεσιμότητα.
Προσθήκη νέας διαδρομής
Στη συνέχεια, μπορούμε να ορίσουμε μια νέα διαδρομή POST για να δεχτούμε δεδομένα τύπου Item:
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
Σε αυτή τη διαδρομή, το FastAPI θα επαληθεύσει αυτόματα τα εισερχόμενα δεδομένα και θα τα αντιστοιχίσει στο μοντέλο Item.
Βήμα 4: Αυτόματη δημιουργία τεκμηρίωσης
Ένα από τα μεγαλύτερα πλεονεκτήματα του FastAPI είναι ότι μπορεί να δημιουργήσει αυτόματα τεκμηρίωση API. Μπορείτε να δείτε την τεκμηρίωση επισκεπτόμενοι τις παρακάτω διευθύνσεις:
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
Σε αυτές τις παραγόμενες τεκμηριώσεις, μπορείτε να δοκιμάσετε διαδραστικά το API και να δείτε τη μορφή αιτήσεων και απαντήσεων για κάθε διαδρομή.
Βήμα 5: Προσθήκη ταυτοποίησης
Στις πραγματικές εφαρμογές, η ταυτοποίηση είναι ένα σημαντικό βήμα. Ας προσθέσουμε μια απλή ταυτοποίηση βασισμένη σε ρόλους.
Προσθήκη εξαρτήσεων ασφαλείας
Χρησιμοποιήστε τη μέθοδο Depends του FastAPI και το OAuth2PasswordBearer για να υλοποιήσετε την ταυτοποίηση:
from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
async def fake_decode_token(token):
return {"sub": token}
async def get_current_user(token: str = Depends(oauth2_scheme)):
user = fake_decode_token(token)
if user is None:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Μη έγκυρες διαπιστευτήρια ταυτοποίησης")
return user
Προστασία διαδρομών
Στη συνέχεια, μπορείτε να προσθέσετε την ταυτοποίηση στις διαδρομές που χρειάζονται προστασία:
@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
return current_user
Βήμα 6: Ανάπτυξη της εφαρμογής FastAPI
Όταν ολοκληρώσετε την ανάπτυξη, μπορεί να χρειαστεί να αναπτύξετε την εφαρμογή σας σε έναν cloud server. Μπορείτε να επιλέξετε να χρησιμοποιήσετε το Docker για την ανάπτυξη.
Δημιουργία Dockerfile
Δημιουργήστε ένα αρχείο με το όνομα Dockerfile στον κατάλογο του έργου σας και εισάγετε το παρακάτω περιεχόμενο:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
COPY ./app /app
Κατασκευή Docker εικόνας
Στο τερματικό σας, χρησιμοποιήστε την παρακάτω εντολή για να κατασκευάσετε την εικόνα Docker:
docker build -t myfastapiapp .
Εκτέλεση Docker κοντέινερ
Εκτελέστε την εφαρμογή FastAPI σας:
docker run -d --name fastapi -p 80:80 myfastapiapp
Σύνοψη
Σε αυτό το άρθρο, αναλύσαμε λεπτομερώς πώς να χρησιμοποιήσετε το FastAPI για να κατασκευάσετε υπηρεσίες API υψηλής απόδοσης, από την προετοιμασία του περιβάλλοντος έως τη δημιουργία βασικών API, τον ορισμό διαδρομών και μοντέλων δεδομένων, μέχρι την προσθήκη ταυτοποίησης και την ανάπτυξη. Το FastAPI προσφέρει πολλές ισχυρές δυνατότητες, καθιστώντας την κατασκευή σύγχρονων API απλή και αποτελεσματική. Μπορείτε να εξερευνήσετε περισσότερες δυνατότητες και χαρακτηριστικά μέσω της επίσημης τεκμηρίωσης. Ελπίζουμε αυτό το άρθρο να σας βοηθήσει να εξοικειωθείτε γρηγορότερα με το FastAPI και να βελτιώσετε την αποδοτικότητα της ανάπτυξης των έργων σας!





