Τι είναι το API

Το API (application programming interface) είναι μηχανισμός με τον οποίο επικοινωνούν 2 κομμάτια λογισμικού.

Αν είσαι σαν εμένα πριν μερικά χρόνια, τώρα σκέφτεσαι “Τι στο καλό σημαίνει αυτό;¨.

Ας δούμε με μία αναλογία.

Σκέψου μία αυτόματη μηχανή καφέ. Η μηχανή έχει μπροστά κουμπιά (espresso, cappucino, ζεστό νερό κτλ). Ακόμα, η μηχανή έχει εξαρτήματα και λογισμικό με το οποίο σου φτιάχνει τον καφέ.

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

Έτσι, κάθε κομμάτι λογισμικού έχει ένα 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 όπως αυτόν.

security

Ασφάλεια API

Η ασφάλεια είναι κρίσιμη κατά τη χρήση ή ανάπτυξη APIs, καθώς περιέχουν ευαίσθητα δεδομένα και λειτουργίες. Βασικοί τρόποι να ασφαλίσεις το API σου:

  • HTTPS: Βάλε στο API σου HTTPS αντί για HTTP για να εξασφαλίσεις την κρυπτογράφηση των δεδομένων κατά τη μεταφορά.

  • Authentication and Authorization: Χρησιμοποίησε μηχανισμούς όπως OAuth και JWT tokens, για να ελέγχεις ποιος έχει πρόσβαση στο API.

  • Rate Limiting: Περιόρισε τον αριθμό των κλήσεων που μπορεί να κάνει ένας χρήστης σε ορισμένο χρονικό διάστημα για να αποτρέψεις επιθέσεις DoS.

Σχετικά Άρθρα

Τι είναι Αλγόριθμος; Παραδείγματα, Ορισμός και Κατηγορίες
Τεχνολογία4 λεπτά ανάγνωση
Τι είναι Αλγόριθμος; Παραδείγματα, Ορισμός και Κατηγορίες

Ανακάλυψε τι είναι ένας αλγόριθμος μέσα από απλά παραδείγματα. Μάθε γιατί είναι ζωτικής σημασίας σε διάφορους τομείς, όπως η επιστήμη των υπολογιστών.

Author Portrait
Lefteris OikonomouMarch 18 2024
Τι Μισθό Παίρνουν οι Προγραμματιστές (Developers) [2024]
Τεχνολογία3 λεπτά ανάγνωση
Τι Μισθό Παίρνουν οι Προγραμματιστές (Developers) [2024]

Δες τον μισθό ενός developer. Μάθε η ειδικότητα και η χώρας εργασίας του προγραμματιστή επηρεάζουν το μισθό του.

Author Portrait
Lefteris OikonomouFebruary 14 2024
Πως να Βρεις Την Πρώτη σου Δουλειά σαν Προγραμματιστής το 2024
Τεχνολογία13 λεπτά ανάγνωση
Πως να Βρεις Την Πρώτη σου Δουλειά σαν Προγραμματιστής το 2024

Ψάχνεις εργασία σαν developer; Ανακάλυψε τρόπους να αποκτήσεις δουλειά, τι μισθούς παίρνουν οι προγραμματιστές στην Ελλάδα και συμβουλές για την συνέντευξη εργασίας.

Author Portrait
Lefteris OikonomouFebruary 5 2024