Το FastAPI εξηγείται σε 5 λεπτά ή λιγότερο

Το FastAPI, ένα πλαίσιο Python που σας επιτρέπει να αναπτύσσετε web API, είναι δημοφιλές τα τελευταία χρόνια.

Το API (Application Programming Interface) είναι το θεμέλιο της σύγχρονης αρχιτεκτονικής. Επιτρέπουν τη σπονδυλοποίηση και την αποσύνδεση των εφαρμογών. Αυτό σας επιτρέπει να δημιουργείτε εφαρμογές γρήγορα και διευκολύνει τη συντήρησή τους.

Επομένως, είναι καλή ιδέα να μάθετε το FastAPI εάν σκοπεύετε να χρησιμοποιήσετε την Python για την ανάπτυξη εφαρμογών ιστού. Αυτό το άρθρο θα σας διδάξει τα πάντα για τα βασικά του FastAPI.

Τι είναι το FastAPI;

Το FastAPI είναι ένα πλαίσιο web που βασίζεται σε Python. Έχει τραβήξει μεγάλη προσοχή τα τελευταία χρόνια. Η δομή ανάπτυξής του είναι παρόμοια με το Flask, το οποίο ήταν η πιο δημοφιλής επιλογή για όσους ήθελαν να μάθουν ανάπτυξη ιστού Python.

Το FastAPI είναι απλό στη χρήση και η τεκμηρίωσή του είναι σαφής και εύκολη στην παρακολούθηση. Το FastAPI χρησιμοποιείται από τεχνολογικούς γίγαντες όπως η Microsoft, το Netflix και η Uber.

Το FastAPI έχει όλα τα χαρακτηριστικά που θα περιμένατε από ένα πρόγραμμα δημιουργίας API, αλλά δεν περιορίζεται σε αυτά. Μπορείτε να το χρησιμοποιήσετε για να προσαρτήσετε το WSGI προς τα πίσω, κάτι που οι περισσότεροι χρήστες δεν γνωρίζουν.

Ο πρωταρχικός σκοπός του FastAPI είναι η δημιουργία τελικών σημείων API, όπως υποδηλώνει το όνομα. Αυτό μπορεί να γίνει τόσο αποτελεσματικά όσο η επιστροφή δεδομένων λεξικού Python σε JSON ή η χρήση της διαδραστικής διεπαφής χρήστη Swagger του OpenAPI.

Το FastAPI δεν περιορίζεται σε API. Μπορεί να χρησιμοποιηθεί για σχεδόν οτιδήποτε κάνει ένα πλαίσιο ιστού, από την παράδοση ιστοσελίδων με τη μηχανή προτύπων Jinja2 έως την εξυπηρέτηση εφαρμογών που υποστηρίζονται από WebSockets.

Παρακάτω είναι τα πλεονεκτήματα του FastAPI:

  • Το FastAPI σάς επιτρέπει να επικυρώνετε τον τύπο δεδομένων του προγραμματιστή, ακόμη και όταν χρησιμοποιείτε ένθετα ερωτήματα JSON.
  • Προσφέρει τη δυνατότητα αυτόματης συμπλήρωσης, η οποία σας επιτρέπει να δημιουργείτε εφαρμογές σε συντομότερο χρόνο και απαιτεί λιγότερη προσπάθεια.
  • Είναι συμβατό με το λεξιλόγιο OpenAPI και JSON Schema, το οποίο σας επιτρέπει να επικυρώνετε και να σχολιάζετε έγγραφα JSON.
  • Το FastAPI σάς επιτρέπει να δημιουργήσετε γρήγορα ένα GraphQL API χρησιμοποιώντας μια βιβλιοθήκη Python που ονομάζεται graphene–python.
  • Το FastAPI είναι συμβατό με το OAuth 2.0 καθώς και με εξωτερικούς παρόχους.
  Πώς να μάθετε το Solidity το 2022 – 11 Μαθήματα/Πόροι

Παρακάτω είναι τα μειονεκτήματα του FastAPI:

  • Το FastAPI είναι ακόμα ένα νέο πλαίσιο, επομένως υπάρχει μικρή κοινότητα κατευθυντήριων γραμμών. Δεν έχει αρκετές εξωτερικές πληροφορίες εκπαίδευσης, όπως βιβλία, μαθήματα ή σεμινάρια.
  • Επειδή πρέπει να συνδέσουμε όλα τα στοιχεία μαζί στο FastAPI, το κύριο αρχείο μπορεί να γίνει πολύ μεγάλο ή γεμάτο.

Μοναδικά χαρακτηριστικά του FastAPI

Αυτά είναι τα μοναδικά χαρακτηριστικά που κάνουν το FastAPI το πιο δημοφιλές web πλαίσιο Python μέχρι σήμερα.

  • Υψηλή απόδοση: Το FastAPI είναι πιο αποδοτικό από άλλα πλαίσια python. Το πλαίσιο προσανατολισμένο στην ταχύτητα του FastAPI το καθιστά κορυφαία επιλογή. Όλα καταλήγουν σε μεγαλύτερη ταχύτητα και καλύτερη απόδοση αξιοποιώντας τις λειτουργίες Starlette, δημιουργώντας API και δημιουργώντας έτοιμους κωδικούς.
  • Γρήγορη κωδικοποίηση: Οι προγραμματιστές δεν χρειάζεται να δημιουργήσουν κάτι νέο με κωδικούς που είναι έτοιμοι για παραγωγή. Αυτό επιταχύνει τη διαδικασία κατά περίπου 200% έως 30%. Το FastAPI εκτελείται στο Starlette και έχει πολλές περισσότερες δυνατότητες που μπορούν να χρησιμοποιηθούν για τη δημιουργία API για επικύρωση και σειριοποίηση δεδομένων. Το πλαίσιο έχει ήδη όλα τα απαραίτητα στοιχεία στη θέση του, μειώνοντας τον χρόνο που χρειάζεται για την κωδικοποίηση.
  • Ελάχιστα σφάλματα: Το πλαίσιο έχει μια λειτουργία αυτόματης συμπλήρωσης που εισάγει αυτόματα το μεγαλύτερο μέρος του κώδικα στο κομμάτι. Αυτό ελαχιστοποιεί την πιθανότητα σφαλμάτων και βελτιώνει την ποιότητα της παραγωγής.
  • Εύκολο στην κατανόηση: Το FastAPI δεν κάνει τίποτα εκτός από τη σύγχρονη Python. Είναι μια τροποποιημένη έκδοση της Python 3.6 και δεν περιέχει νέα σύνταξη. Το πλαίσιο μπορεί να χρησιμοποιηθεί από οποιονδήποτε καταλαβαίνει καλά τη γλώσσα.
  • Ελάχιστη προσπάθεια: Το FastAPI δημιουργεί αυτόματα τεκμηρίωση OpenAPI με ελάχιστη προσπάθεια από τον προγραμματιστή. Αυτές οι πληροφορίες βρίσκονται στον κατάλογο της εφαρμογής/έγγραφου. Η τεκμηρίωση περιέχει λεπτομερείς πληροφορίες σχετικά με τα τελικά σημεία API, τους κωδικούς επιστροφής, τις παραμέτρους απόκρισης και άλλες λεπτομέρειες.
  • Υποστήριξη συντάκτη: Όλα τα στοιχεία του πλαισίου έχουν σχεδιαστεί με γνώμονα την αυτόματη συμπλήρωση. Είναι απλό, δίνοντας στους προγραμματιστές τη δυνατότητα να παράγουν έτοιμο κώδικα. Μπορείτε επίσης να δοκιμάσετε τον κώδικα απευθείας από το πρόγραμμα περιήγησής σας με τη διαδραστική τεκμηρίωση.
  • Ανοιχτά πρότυπα: Το πλαίσιο web Python του FastAPI είναι ένα τεράστιο πλεονέκτημα. Το πλαίσιο είναι συμβατό με το OpenAPI, παλαιότερα γνωστό ως Swagger, το οποίο επιτρέπει τη δημιουργία API.

Εγκατάσταση FastAPI

Ακολουθούν τα απλά βήματα για να εγκαταστήσετε το FastAPI σε Linux ή Windows.

#1. Εγκατάσταση FastAPI σε Linux

Εγκαταστήστε την Python 3 σε Linux χρησιμοποιώντας την παρακάτω εντολή:

sudo apt install python3

Εγκαταστήστε το pip στο Linux χρησιμοποιώντας την παρακάτω εντολή:

sudo apt install python3-pip

Στη συνέχεια, εγκαταστήστε το FastAPI σε Linux.

pip install fastapi

Θα χρειαστείτε επίσης έναν διακομιστή ASGI. Έτσι, εγκαταστήστε το Uvicorn χρησιμοποιώντας pip.

pip install "uvicorn[standard]"

#2. Εγκατάσταση FastAPI σε Windows

Εγκαταστήστε την Python 3 στα Windows χρησιμοποιώντας το κατάστημα της Microsoft. Αυτό θα εγκαταστήσει επίσης το pip.

  11 βιβλιοθήκες και λειτουργικές μονάδες Python που κάθε προγραμματιστής πρέπει να γνωρίζει

Στη συνέχεια, εγκαταστήστε το FastAPI στα Windows.

pip install fastapi

Τέλος, εγκαταστήστε τον διακομιστή ASGI uvicorn.

pip install "uvicorn[standard]"

Χρήσεις νέας εποχής του FastAPI

Ακολουθούν ορισμένες χρήσεις FastAPI νέας εποχής:

Αυτοματοποιημένα Έγγραφα

Η τεκμηρίωση σχετικά με τους τύπους και τα τελικά σημεία API είναι απαραίτητη. Αυτό το πρόβλημα μπορεί να λυθεί χρησιμοποιώντας το OpenAPI, το Swagger UI και το ReDoc. Αυτά συσκευάζονται αυτόματα με FastAPI. Αυτό σας επιτρέπει να επικεντρωθείτε στον κώδικά σας και όχι να ρυθμίσετε εργαλεία.

Δακτυλογραφημένο Python

Το FastAPI χρησιμοποιεί δηλώσεις τύπου Python 3.6 (χάρη στο Pydantic). Αυτό σημαίνει ότι χρησιμοποιεί μια δυνατότητα Python που σας επιτρέπει να καθορίσετε τον τύπο και τον τύπο μιας μεταβλητής. Αυτό το πλαίσιο το χρησιμοποιεί πολύ, παρέχοντάς σας εξαιρετική υποστήριξη συντάκτη. Η αυτόματη συμπλήρωση λειτουργεί εκπληκτικά.

Επικύρωση

Η Pydantic ήδη ενσωματώνει την επικύρωση σε αυτό το πλαίσιο. Μπορεί να γίνει επικύρωση τυπικών τύπων Python και προσαρμοσμένες επικυρώσεις πεδίων.

Ασφάλεια και έλεγχος ταυτότητας

Αυτό είναι ένα σημαντικό μέρος οποιουδήποτε API. Συχνά απλώς επαναλαμβάνουμε τον κώδικα, οπότε γιατί να μην ενσωματώσουμε μέρος του στο πλαίσιό μας; Το FastAPI κάνει ακριβώς αυτό.

Η βιβλιοθήκη υποστηρίζει κλειδιά HTTP Basic, OAuth2 (κουπόνια JWT) και κλειδιά API κεφαλίδας.

Ασύγχρονη φύση

Το FastAPI, από προεπιλογή, υποστηρίζει ασύγχρονα τελικά σημεία, καθιστώντας τον κώδικά σας απλούστερο και πιο αποτελεσματικό. Αυτό είναι ένα σημαντικό πλεονέκτημα έναντι του Flask.

FastAPI εναντίον Flask: Βασικές διαφορές

Διαφορές χρήσης

Το FastAPI, μια πλατφόρμα full-stack που παρέχει όλα όσα χρειάζεστε για τη δημιουργία του API σας, είναι διαθέσιμη. Το Flask, από την άλλη πλευρά, είναι ένα μικροπλαίσιο και δεν προσφέρει όλες τις ίδιες δυνατότητες με το FastAPI. Το Flask μπορεί να είναι χρήσιμο εάν χρειάζεται να δημιουργήσετε πρωτότυπα μια ιδέα ή να δημιουργήσετε μια απλή εφαρμογή Ιστού γρήγορα.

Το Flask και το FastAPI διαφέρουν πολύ στον τρόπο χρήσης τους. Το πλαίσιο Flask μπορεί να χρησιμοποιηθεί για τη δημιουργία πρωτοτύπων νέων ιδεών και εφαρμογών, ενώ το πλαίσιο FastAPI μπορεί να χρησιμοποιηθεί για τη δημιουργία API. Μπορείτε να δημιουργήσετε γρήγορα έναν διακομιστή υποστήριξης χρησιμοποιώντας τον χωρίς καμία γνώση κωδικοποίησης.

Ιστότοποι και εφαρμογές ιστού μικρής κλίμακας

Το FastAPI είναι απλό στη χρήση, ελαφρύ και μπορεί να χρησιμοποιηθεί για ανάπτυξη ιστού και εφαρμογών μικρής κλίμακας. Περιλαμβάνει ένα αντικείμενο-σχεσιακό επίπεδο (ORM), το οποίο χειρίζεται αντικείμενα δεδομένων εντός της εφαρμογής, ώστε να μπορείτε να έχετε γρήγορη πρόσβαση σε αυτά μέσω κωδικοποίησης.

  Πόσο είναι να ακυρώσετε το Planet Fitness

Το επίπεδο ORM παρακολουθεί τις βάσεις δεδομένων σας και σας επιτρέπει να ξεχάσετε τη μη αυτόματη ενημέρωση όταν προστίθενται, τροποποιούνται ή διαγράφονται νέες πληροφορίες από τον ιστότοπο ή την εφαρμογή.

WSGI εναντίον ASGI

Ίσως έχετε παρατηρήσει μια βασική διαφορά: Το Flask χρησιμοποιεί το WSGI για την τυπική του διεπαφή, ενώ το FastAPI χρησιμοποιεί το ASGI. Όπως αναφέρθηκε προηγουμένως, το WSGI επεξεργάζεται αιτήματα συγχρονισμένα. Τα αιτήματα διεκπεραιώνονται διαδοχικά. Δεν μπορεί κανείς να ξεκινήσει μέχρι να ολοκληρωθεί η τελευταία εργασία.

Η ASGI χειρίζεται αιτήματα ασύγχρονα. Αυτό επιτρέπει στις εργασίες να ολοκληρώνονται με τον δικό τους ρυθμό και δεν απαιτεί να περιμένουν άλλους.

Κοινότητα

Μια άλλη διαφορά είναι η κοινότητα. Το Flask είναι μια κοινότητα που υπάρχει περισσότερο από το FastAPI. Αυτό σημαίνει μεγάλη τεκμηρίωση και εξωτερική βοήθεια από άλλους που γράφουν για το Flask.

Το FastAPI είναι ακόμα ένα νέο έργο, επομένως η κοινότητα δεν έχει ακόμη αναπτυχθεί αρκετά. Αυτό σημαίνει ότι παρόλο που υπάρχει αρκετή τεκμηρίωση, δεν υπάρχει μεγάλη εξωτερική βοήθεια.

Ακολουθούν συνοπτικοί πίνακες για το FastAPI vs. Flask:

Η επικύρωση FastAPIFlaskData είναι ενσωματωμένη. Δεν έχει επικύρωση δεδομένων. Διατίθεται υποστήριξη ασύγχρονης εργασίαςΔεν είναι διαθέσιμη η υποστήριξη ασύγχρονων εργασιώνΕφαρμογές προδιαγραφές ASGIΥποστηρίζει εφαρμογές WSGIΑυτόματη υποστήριξη εγγράφωνΜη αυτόματη υποστήριξη εγγράφωνΤο μήνυμα σφάλματος εμφανίζεται σε μορφή JSONΤο μήνυμα σφάλματος εμφανίζεται στην κοινότητα υποστήριξης HTML

FastAPI ή Flask: Ποιο να επιλέξετε;

Το FastAPI και το Flask μπορούν να ρυθμίσουν γρήγορα διακομιστές ιστού Python και εφαρμογές επιστήμης δεδομένων. Και τα δύο απαιτούν την ίδια προσπάθεια για την ανάπτυξη, αλλά ποιο πλαίσιο είναι καλύτερο για το επόμενο έργο σας;

Το FastAPI είναι η καλύτερη επιλογή όταν η ταχύτητα και η απόδοση έχουν μεγαλύτερη σημασία. Αυτό το πλαίσιο είναι καλύτερο εάν δημιουργείτε ένα CDN και περιμένετε σημαντική επισκεψιμότητα. Το FastAPI σάς επιτρέπει να κατεβάσετε το πλαίσιο και να το χρησιμοποιήσετε αμέσως. Το πρότυπο έργου θα σας εξοικονομήσει χρόνο και θα σας βοηθήσει να εξοικονομήσετε χρόνο.

Το FastAPI είναι καλύτερη επιλογή από το Flask όταν δημιουργείτε API. Αυτό ισχύει ιδιαίτερα όταν λαμβάνονται υπόψη οι μικροϋπηρεσίες και άλλα ζητήματα. Το Flask είναι η καλύτερη επιλογή εάν έχετε ήδη πολλά εργαλεία χτισμένα γύρω από αυτό το πλαίσιο.

συμπέρασμα

Λοιπόν, όλα αυτά αφορούσαν το FastAPI. Το FastAPI προσφέρει ανώτερη ταχύτητα και απόδοση. Αυτό το πλαίσιο είναι το καλύτερο εάν χτίζετε το δίκτυο παράδοσης περιεχομένου και αναμένετε επισκεψιμότητα. Το καινοτόμο πλαίσιο και το πρότυπο έργου του FastAPI θα σας βοηθήσουν να εξοικονομήσετε χρόνο.

Το Flask θα μπορούσε να είναι καλύτερο για τη δημιουργία API, ιδιαίτερα μικροϋπηρεσιών. Το FastAPI είναι επίσης καλύτερο από το Flask. Το Flask είναι μια καλύτερη επιλογή εάν το χρησιμοποιείτε ήδη εκτενώς.

Μπορείτε επίσης να εξερευνήσετε μερικά δημοφιλή Python Frameworks για να δημιουργήσετε API.