ΕΙΣΑΓΩΓΗ
Καλώς ήρθατε στη νέα μας σειρά δωρεάν μαθημάτων Python! Αφού κατακτήσαμε τα βασικά εργαλεία και τις δομές δεδομένων (όπως Lists, Dictionaries και Tuples), ήρθε η ώρα να περάσουμε στο επόμενο, συναρπαστικό επίπεδο: το Web Development. Σε αυτή τη σειρά μαθημάτων θα μάθουμε πώς να φτιάχνουμε σύγχρονες web εφαρμογές και APIs χρησιμοποιώντας το FastAPI.
Τι είναι το FastAPI;
- Είναι πανεύκολο στην εκμάθηση, ειδικά αν γνωρίζετε ήδη τα βασικά της Python.
- Μειώνει τα bugs, χάρη στον αυστηρό έλεγχο δεδομένων (Type Hints) που κάνει στο παρασκήνιο.
- Φτιάχνει το Documentation μόνο του! Καθώς εσείς γράφετε κώδικα, το FastAPI δημιουργεί αυτόματα μια πανέμορφη, διαδραστική σελίδα (Swagger UI) για να δοκιμάζετε το API σας χωρίς έξτρα κόπο.
Προετοιμασία Φακέλου και VS Code
Για να γράψουμε τον κώδικά μας, θα χρησιμοποιήσουμε το Visual Studio Code (VS Code), που είναι ο πιο δημοφιλής και δωρεάν Code Editor.
Πριν γράψουμε οτιδήποτε, πρέπει να οργανώσουμε τον χώρο εργασίας μας:
- Πηγαίνετε στην Επιφάνεια Εργασίας σας (ή στα Έγγραφα) και δημιουργήστε έναν νέο, άδειο φάκελο. Ονομάστε τον π.χ.
fastapi-course. - Ανοίξτε το VS Code.
- Πηγαίνετε στο μενού πάνω αριστερά:
File->Open Folder...(ήΆνοιγμα Φακέλου) και επιλέξτε τον φάκελοfastapi-courseπου μόλις φτιάξατε.
Εγκατάσταση του FastAPI
Πρέπει να εγκαταστήσουμε το FastAPI και έναν "διακομιστή" (server) που θα τρέχει την εφαρμογή μας, ο οποίος ονομάζεται Uvicorn (θα μιλήσουμε αναλυτικά για αυτόν στο επόμενο κεφάλαιο).
Μέσα στο VS Code, πηγαίνετε στο μενού πάνω-πάνω και επιλέξτε Terminal -> New Terminal. Στο παραθυράκι που θα ανοίξει στο κάτω μέρος της οθόνης, πληκτρολογήστε την εξής εντολή και πατήστε Enter:
Αυτό ήταν! Τα εργαλεία μας είναι έτοιμα.
Το πρώτο μας "Hello World" API
Μέσα στο VS Code, δημιουργήστε ένα νέο αρχείο (πατώντας το εικονίδιο 'New File' δίπλα στο όνομα του φακέλου σας) και ονομάστε το main.py.
Αντιγράψτε και επικολλήστε μέσα σε αυτό το αρχείο τον παρακάτω κώδικα:
main.py
Αν παρατηρήσετε, χρειαστήκαμε μόλις 4-5 γραμμές κώδικα για να φτιάξουμε έναν ολόκληρο Web Server! Ας δούμε τι κάνει η καθεμία:
from fastapi import FastAPI: Εδώ απλά κάνουμε import το εργαλείο που μόλις εγκαταστήσαμε.
app = FastAPI(): Δημιουργούμε ένα αντικείμενο με το όνομα app. Αυτή η μεταβλητή είναι η "καρδιά" της εφαρμογής μας. Όλα θα περνάνε από αυτήν!
@app.get("/"): Αυτό ονομάζεται decorator. Λέει στην Python ότι: "Όταν κάποιος χρήστης επισκεφθεί την αρχική σελίδα (/) του site μας, ζητώντας δεδομένα (μέθοδος get), τρέξε την από κάτω συνάρτηση".
def read_root(): Μια εντελώς απλή, κλασική συνάρτηση της Python.
return {"message": "..."}: Η συνάρτησή μας επιστρέφει ένα Dictionary. Το FastAPI είναι τόσο έξυπνο που θα πάρει αυτόματα αυτό το Dictionary και θα το μετατρέψει σε μορφή JSON, ώστε να μπορεί να διαβαστεί από οποιονδήποτε browser ή άλλη εφαρμογή!
Πώς το τρέχουμε;
Για να δούμε το API μας ζωντανά, ανοίγουμε το Terminal στον φάκελο που βρίσκεται το αρχείο main.py και γράφουμε:
Αυτή η εντολή λέει: "Χρησιμοποίησε τον uvicorn, άνοιξε το αρχείο main.py, βρες το αντικείμενο app και τρέξε το. Το --reload σημαίνει ότι αν κάνω κάποια αλλαγή στον κώδικα, κάνε αυτόματα ανανέωση (restart)!".
Δοκιμή μέσω Swagger UI (Το απόλυτο κόλπο!)
Τώρα που ο server τρέχει, ανοίξτε τον browser σας (π.χ. Chrome) και πληκτρολογήστε στη γραμμή διευθύνσεων:
Αυτό που βλέπετε είναι το Swagger UI! Είναι η αυτόματη, διαδραστική σελίδα που έφτιαξε το FastAPI για εσάς. Πάμε να κάνουμε το πρώτο μας τεστ:
- Κάντε κλικ στην πράσινη μπάρα που γράφει
GET /. Θα ανοίξει ένα μενού. - Πατήστε το κουμπί που γράφει "Try it out" (Δοκιμάστε το) πάνω δεξιά.
- Τώρα θα εμφανιστεί μια μεγάλη μπλε μπάρα που γράφει "Execute" (Εκτέλεση). Πατήστε την!
Αμέσως από κάτω, στην ενότητα Server response, θα δείτε τον κωδικό επιτυχίας 200 και το αποτέλεσμα (Response body) σε μορφή JSON:
{ "message": "Hello World! Καλώς ήρθατε στο FastAPI!" }
Συγχαρητήρια! Μόλις φτιάξατε, τρέξατε και δοκιμάσατε το πρώτο σας API!
Μην ξεχάσετε να κάνετε ένα μικρό donation, έτσι ώστε αυτό το site να μεγαλώσει ακόμα περισσότερο και να αποκτήσει νέες δυνατότητες για την online παράδοση δωρεάν μαθημάτων! Στο επόμενο κεφάλαιο, θα αναλύσουμε τον Uvicorn και πώς δουλεύει ο τοπικός μας server (localhost). Μείνετε συντονισμένοι!
full-width


0 Comments
What do you think about Ground of Code?