Τι είναι το API
Το API (application programming interface) είναι μηχανισμός με τον οποίο επικοινωνούν 2 κομμάτια λογισμικού.
Αν είσαι σαν εμένα πριν μερικά χρόνια, τώρα σκέφτεσαι “Τι στο καλό σημαίνει αυτό;¨.
Ας δούμε με μία αναλογία.
Σκέψου μία αυτόματη μηχανή καφέ. Η μηχανή έχει μπροστά κουμπιά (espresso, cappucino, ζεστό νερό κτλ). Ακόμα, η μηχανή έχει εξαρτήματα και λογισμικό με το οποίο σου φτιάχνει τον καφέ.
Το API είναι τα κουμπιά της καφετιέρας. Τα κουμπιά της μηχανής σου ορίζουν πως μπορείς να επικοινωνήσεις με ένα σύστημα που δεν γνωρίζεις πως έχει υλοποιηθεί.
Έτσι, κάθε κομμάτι λογισμικού έχει ένα API (τα αντίστοιχα κουμπιά της καφετιέρας) ώστε να μπορεί να επικοινωνήσει με άλλα κομμάτια λογισμικού.
Παραδείγματα API στην πραγματική ζωή
Πριν σου πω γιατί οι προγραμματιστές φτιάχνουμε APIs, ας δούμε μερικά παραδείγματα από την πραγματική ζωή για να καταλάβεις καλύτερα πώς λειτουργούν:
Κοινωνικά Μέσα: Το API του Twitter (X), για παράδειγμα, επιτρέπει στους προγραμματιστές να ανακτούν tweets, να στέλνουν tweets, ή να διαγράφουν tweets μέσω των δικών τους εφαρμογών. Αυτό κάνει δυνατή τη δημιουργία εξειδικευμένων εργαλείων που αξιοποιούν τα δεδομένα του Twitter.
Ηλεκτρονικό Εμπόριο: Οι ιστοσελίδες όπως το Skroutz παρέχουν APIs για να επικοινωνούν με τα e-shops. Έτσι το κάθε κατάστημα που συμμετέχει στο marketplace του skroutz μπορεί να ενημερώνει το skroutz για τις αλλαγές στα αποθέματα, τα προϊόντα και τις τιμές του.
Ηλεκτρονικοί Χάρτες: APIs προσφέρει το Google Maps και επιτρέπει στους προγραμματιστές να ενσωματώνουν χάρτες, διαδρομές και γεωγραφικά δεδομένα στις εφαρμογές τους. Κάθε εφαρμογή που έχεις και χρησιμοποιεί χάρτες, δεν έχει κάτσει να τους φτιάξει από την αρχή. Χρησιμοποιεί έτοιμα APIs.
Υπηρεσίες Καιρού: Υπηρεσίες όπως η OpenWeatherMap προσφέρουν APIs που επιτρέπουν στους προγραμματιστές να παίρνουν τρέχουσες και προγνωστικές πληροφορίες για τον καιρό. Έτσι, η εφαρμογή τρεξίματος σου σε ειδοποιεί πως στις 7 το απόγευμα θα βρέχει και σε ρωτάει αν θες να βάλεις άλλη ώρα την προπόνηση σου.
Πλεονεκτήματα API
Τώρα που κατάλαβες τι είναι API ας δούμε γιατί είναι χρήσιμα.
Μοναδικότητα: Τα API επιτρέπουν στους προγραμματιστές να δημιουργούν εφαρμογές συνδυάζοντας ξεχωριστές μονάδες λογισμικού. Έτσι, διαφορετικές λειτουργίες μιας εφαρμογής μπορούν να αναπτυχθούν ανεξάρτητα και να επικοινωνούν αποτελεσματικά. Κάθε μονάδα μπορεί να ενημερωθεί ή να επιδιορθωθεί χωρίς να επηρεάζει το υπόλοιπο σύστημα.
Επαναχρησιμοποίηση: Μέσω των API, οι λειτουργίες μπορούν να χρησιμοποιηθούν εύκολα εκ νέου. Μόλις αναπτυχθεί ένα API για μια συγκεκριμένη υπηρεσία, μπορεί να χρησιμοποιηθεί επανειλημμένα σε διαφορετικά μέρη μιας εφαρμογής ή ακόμη και σε διαφορετικά έργα. Αυτό εξοικονομεί χρόνο και πόρους και εξασφαλίζει συνέπεια στον τρόπο υλοποίησης των λειτουργιών.
Απλοποίηση: Τα API απλοποιούν την ανάπτυξη εφαρμογών αποκρύπτοντας τη λειτουργία του backend από το frontend. Οι προγραμματιστές μπορούν να χρησιμοποιήσουν API για να αλληλεπιδρούν με έναν server ή μια βάση δεδομένων χωρίς να γνωρίζουν τις λεπτομέρειες για την υλοποίηση.
Ενσωμάτωση: Τα API παρέχοντας ένα κοινό πρωτόκολλο διευκολύνουν την επικοινωνία μεταξύ λογισμικών. Έτσι, μπορούμε να κάνουμε γρήγορα και άμεση σύνδεση με λογισμικά τρίτων. Για παράδειγμα, μπορούμε να ενσωματώσουμε πληρωμές στην εφαρμογή μας χρησιμοποιώντας το API μιας τράπεζας
Ασφάλεια: Τα API επιβάλλουν αυστηρές διαδικασίες ταυτοποίησης, κρυπτογράφησης, και επικύρωσης δεδομένων, αυξάνοντας την ασφάλεια του λογισμικού μας.
Επεκτασιμότητα: Τα API χωρίζουν το λογισμικό σε επιμέρους μονάδες. Έτσι, η κάθε μονάδα μπορεί να διατηρηθεί και να επεκταθεί ευκολότερα.
Πως ορίζεται το API: Endpoints + Documentation
Τα βασικά κομμάτια που ορίζουν ένα API είναι τα endpoints και το documentation.
Endpoints: Είναι συγκεκριμένα URLs που παρέχει το API για την εκτέλεση διαφορετικών λειτουργιών (τα διάφορα κουμπιά της καφετιέρας). Για παράδειγμα, ένα endpoint σε ένα API κοινωνικών μέσων σου επιτρέπει να ανακτήσεις τη λίστα φίλων ενός χρήστη και μοιάζει κάπως έτσι:
https::/someservice/api/users/userId/friend-list
Documentation: Τα έγγραφα που περιγράφουν πώς να χρησιμοποιήσεις τα endpoints (οδηγίες της καφετιέρας). Εκεί θα βρεις τις παραμέτρους που πρέπει να στείλεις, τι endpoints υπάρχουν, τι δεδομένα σου δίνουν και πιθανά προβλήματα που μπορεί να συναντήσεις.
Είδη API
Με βάση τη χρήση και την προσβασιμότητα APIs διακρίνονται στα παρακάτω:
APIs Δεδομένων | Συνδέουν εφαρμογές με συστήματα διαχείρισης βάσεων δεδομένων |
APIs Λειτουργικού Συστήματος | Καθορίζουν πώς οι εφαρμογές χρησιμοποιούν τις υπηρεσίες και τους πόρους του λειτουργικού συστήματος |
Απομακρυσμένα APIs | Καθορίζουν πώς επικοινωνούν οι εφαρμογές σε διαφορετικές συσκευές |
Web APIs | Eπιτρέπουν τη μεταφορά δεδομένων και λειτουργικότητας μέσω του διαδικτύου |
Ta Web apis είναι τα δημοφιλέστερα APIs, καθώς επιτρέπουν την πρόσβαση σε εφαρμογές και δεδομένα από οπουδήποτε στον κόσμο.
Είδη web API
Open / Public APIs | Είναι διαθέσιμα για το κοινό και τα χρησιμοποιείς με το πρωτόκολλο HTTP |
Partner APIs | Συνδέουν επιχειρηματικούς συνεργάτες και απαιτούν πιστοποίηση |
Internal / Private APIs | APIs που χρησιμοποιούνται μόνο από μια εταιρεία / ομάδα. |
Composite APIs | Επιτρέπουν στους προγραμματιστές να έχουν πρόσβαση σε πολλαπλά endpoints με μία μόνο κλήση |
Τι είναι το REST API
To REST (Representational State Transfer) είναι πρότυπο για την ανάπτυξη διαδικτυακών εφαρμογών. Τα REST APIs χρησιμοποιούν HTTP αιτήσεις για την ανταλλαγή δεδομένων. Επιτρέπουν την ανάκτηση, δημιουργία, τροποποίηση και διαγραφή δεδομένων μέσω καλά καθορισμένων μεθόδων όπως GET, POST, PUT, και DELETE.
Τα REST apis είναι stateless. Αυτό σημαίνει πως δεν υπάρχει συσχέτιση μεταξύ των κλήσεων στο API. Κάθε κλήση ανεξάρτητη. Λόγω της απλότητας τους, το REST APIs είναι το δημοφιλέστερο μοτίβο για την ανάπτυξη σύγχρονων web και mobile εφαρμογών.
Πώς χρησιμοποιώ ένα API
Για να χρησιμοποιήσεις ένα API, θα πρέπει να κάνεις τα εξής:
Κατανόηση του API: Διάβασε το documentation του API για να καταλάβεις τις λειτουργίες του και τα endpoints.
Αυθεντικοποίηση: Συχνά, τα APIs απαιτούν κλειδιά πρόσβασης για να τα χρησιμοποιήσεις. Δες στο documentation πως να αποκτήσεις ένα.
Δημιουργία Αιτήσεων: Κάλεσε το API μέσω HTTP. Μπορείς να το κάνεις χρησιμοποιώντας οποιαδήποτε γλώσσα προγραμματισμού, ένα terminal ή ένα εργαλείο όπως το postman. H πιο σύνηθες γλώσσες για να καλέσεις ένα API είναι Python, JavaScript, ή Java.
Παράδειγμα: Χρήση API
Ακολουθεί ένα παράδειγμα σε JavaScript για να λάβουμε δεδομένα από το JSONPlaceholder API:
// Γράφουμε το url για το endpoint που γυρίζει ένα todo
const url = "https://jsonplaceholder.typicode.com/todos/1";
// Καλούμε το API για να πάρουμε το todo
fetch(url)
.then(response => response.json())
.then(json => console.log(json))
Μπορείς να τρέξεις τον παραπάνω κώδικα σε online javascript compiler όπως αυτόν.
Ασφάλεια API
Η ασφάλεια είναι κρίσιμη κατά τη χρήση ή ανάπτυξη APIs, καθώς περιέχουν ευαίσθητα δεδομένα και λειτουργίες. Βασικοί τρόποι να ασφαλίσεις το API σου:
HTTPS: Βάλε στο API σου HTTPS αντί για HTTP για να εξασφαλίσεις την κρυπτογράφηση των δεδομένων κατά τη μεταφορά.
Authentication and Authorization: Χρησιμοποίησε μηχανισμούς όπως OAuth και JWT tokens, για να ελέγχεις ποιος έχει πρόσβαση στο API.
Rate Limiting: Περιόρισε τον αριθμό των κλήσεων που μπορεί να κάνει ένας χρήστης σε ορισμένο χρονικό διάστημα για να αποτρέψεις επιθέσεις DoS.