Το HDG εξηγεί: Τι είναι ένα API;

Σε ένα Διαδίκτυο γεμάτο με μπερδεμένα και άγνωστα αρκτικόλεξα(confusing and unfamiliar acronyms) , μπορεί να είναι εύκολο να μπερδευτείτε. Ένα αρκτικόλεξο ιστού που μπορεί να έχετε ακούσει αλλά ποτέ δεν είχατε την έμπνευση να εξετάσετε είναι το "API".

Τι είναι ένα API ; Το API(API) είναι ένα ακρωνύμιο για τη διεπαφή προγραμματισμού εφαρμογών( application programming interface) και είναι ένα όνομα για ένα σύνολο ρουτίνες και πρωτόκολλα που κάνουν τη διαδικασία δημιουργίας εφαρμογών λογισμικού πολύ πιο εύκολη.

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

Ωστόσο, τα API(APIs) είναι πολύπλοκα και απαιτούν κάτι περισσότερο από μια σύντομη περίληψη. Σε αυτό το άρθρο, ας δούμε πώς λειτουργούν τα API(APIs) και ποιοι ιστότοποι και υπηρεσίες τα χρησιμοποιούν.

Τι είναι ένα API και πώς λειτουργεί;(What Is An API and How Does It Work?)

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

Ο καλύτερος τρόπος για να εξηγήσετε τη βασική λειτουργικότητα ενός API είναι να παρέχετε ένα πραγματικό παράδειγμα. Οι υπηρεσίες παράδοσης φαγητού(Food) , όπως το GrubHub , είναι απίστευτα δημοφιλείς αυτή τη στιγμή, οπότε ας συζητήσουμε πώς μπορεί να λειτουργεί ο κώδικας πίσω από εφαρμογές για κινητά όπως αυτές.

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

Για να προγραμματίσετε την παράδοσή σας, πρέπει να δημιουργηθεί μια σύνδεση μεταξύ του ιστότοπου παράδοσης και μιας βάσης δεδομένων — ο ιστότοπος είναι το frontend και η βάση δεδομένων είναι το backend. Η βάση δεδομένων είναι αυτή που αποθηκεύει τα δεδομένα για όλα αυτά τα εστιατόρια, τη διαθεσιμότητά τους ανά τοποθεσία, πρόγραμμα λειτουργίας, μενού και άλλα.

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

Για παράδειγμα, θα ήταν ωφέλιμο για έναν ιστότοπο εάν οι συγκεντρωτές τρίτων ήταν σε θέση να απαριθμήσουν και να οργανώσουν όλα τα εστιατόρια και τα είδη που έχει διαθέσιμα, σωστά; Χωρίς ένα API , αυτό δεν θα ήταν δυνατό χωρίς τη χρήση αναποτελεσματικών τεχνικών απόξεσης ιστού.

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

Τι τύποι API υπάρχουν;(What Types Of APIs Are There?)

Υπάρχουν πολλοί διαφορετικοί τύποι πρωτοκόλλων API , αλλά τα τρία πιο δημοφιλή είναι το SOAP ( Πρωτόκολλο πρόσβασης απλού αντικειμένου(Simple Object Access Protocol) ), το REST ( Μεταφορά αντιπροσωπευτικής κατάστασης(Representational State Transfer) ) και το RPC ( Κλήση απομακρυσμένης διαδικασίας(Remote Procedure Call) ).

SOAP API(SOAP APIs)

Το SOAP(SOAP) εισήχθη για πρώτη φορά στα τέλη της δεκαετίας του 1990 και επέτρεψε στις εφαρμογές να μοιράζονται πόρους με απλό τρόπο μέσω της χρήσης συνδέσεων δικτύου. Το SOAP(SOAP) βασίζεται σε τυπικά πρωτόκολλα, όπως το HTTP και το SMTP , τα οποία του επιτρέπουν να χρησιμοποιείται σχεδόν σε κάθε περιβάλλον λόγω της δημοτικότητας τέτοιων πρωτοκόλλων.

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

REST API(REST APIs)

Το REST εισήχθη το 2000 από τον Roy Fielding . Ο άμεσος στόχος του ήταν να λειτουργήσει ως απάντηση σε πολλά από τα ζητήματα που δημιουργήθηκαν από την ευρεία υιοθέτηση του SOAP .

Παρόμοια με το SOAP , το REST βασίζεται στο HTTP για τη μεταφορά πληροφοριών μεταξύ των εφαρμογών. Ωστόσο, μια σημαντική διαφορά που το κάνει να ξεχωρίζει από το SOAP , το οποίο απαιτεί τη μετάδοση δεδομένων μέσω της μορφής δεδομένων XML , είναι ότι υποστηρίζει JSON . Το JSON(JSON) είναι μια μορφή δεδομένων που πολλοί συμφωνούν ότι είναι πιο εύκολη στην ανάγνωση και εγγραφή. Επιπλέον, τα API REST(REST APIs) μπορούν να αποθηκεύσουν δεδομένα προσωρινά, επιτρέποντας πολύ καλύτερη απόδοση.

Το REST αντιπροσωπεύει πλέον περισσότερο από το 80% όλων των API(APIs) , σύμφωνα με μια αναφορά του 2017 από το Cloud Elements .

RPC API(RPC APIs)

Τα RPC API(RPC APIs) διατίθενται σε πολλές γεύσεις, αλλά όπως μάθαμε από τα REST API(REST APIs) , το JSON είναι μια πολύ δημοφιλής μορφή δεδομένων, επομένως το JSON-RPC είναι το πιο δημοφιλές του.

Το JSON-RPC(JSON-RPC) είναι ένα πρωτόκολλο που ταιριάζει καλύτερα σε μινιμαλιστές και χρήστες που βασίζονται στην απλότητα του API τους . Είναι πολύ πιο στενό σε εύρος σε σύγκριση με το SOAP και το REST και είναι πολύ περιορισμένο ως προς την ευελιξία και το σύνολο των εντολών του—αλλά για ορισμένους προγραμματιστές, λιγότερο είναι περισσότερο.

Υπάρχουν άλλοι τύποι API που βασίζονται σε RPC , όπως το gRPC, αλλά το JSON-RPC(JSON-RPC) είναι το καλύτερο, εάν η προτεραιότητά σας είναι η απλότητα της υλοποίησης.

Ποιος χρησιμοποιεί API;(Who Uses APIs?)

Οι προγραμματιστές οποιουδήποτε είδους, είτε είναι frontend είτε backend, θα πρέπει να έχουν εμπειρία εργασίας με API(APIs) . Όσον αφορά τους ιστότοπους ή τις υπηρεσίες ιστού, σχεδόν όλοι οι σημαντικότεροι παίκτες διαθέτουν κάποιο είδος API —το πιο προφανές είναι τα Windows(Windows) .

Καθώς τα Microsoft Windows(Microsoft Windows) είναι το πιο δημοφιλές λειτουργικό σύστημα στον πλανήτη, είναι φυσικό οι προγραμματιστές εφαρμογών να χρειάζονται ένα σύνολο οδηγιών για τον τρόπο αλληλεπίδρασης με το περιβάλλον εργασίας τους. Χωρίς πρόσβαση στο API των Windows(Windows API) , ο προγραμματισμός μιας εφαρμογής που βασίζεται σε μεγάλο βαθμό στην αλληλεπίδραση με το λειτουργικό σύστημα θα ήταν μεγάλος πονοκέφαλος.

Υπάρχουν χιλιάδες API(APIs) εκεί έξω, μερικά δωρεάν και άλλα επί πληρωμή. Ακολουθούν μερικά μόνο παραδείγματα που αξίζει να εξεταστούν:

  • Google Play Developer API : Εργασίες δημοσίευσης και διαχείρισης εφαρμογών που σχετίζονται με το Google Play(Google Play)
  • Skyscanner API(Skyscanner APIs)(Skyscanner APIs) : API(APIs) βασισμένα σε ταξίδια πουσχετίζονται με πτήσεις, ενοικιάσεις αυτοκινήτων και άλλα
  • Twilio API : Επιτρέπει(Allows) την αποστολή και λήψη τηλεφωνικών κλήσεων μέσω προγραμματισμού
  • Discord API : Επιτρέπει στους χρήστες να δημιουργήσουν τα bot που κάνουν το Discord(Discord) την υπηρεσία ανταλλαγής μηνυμάτων που είναι σήμερα
  • IPinfo API : On-the-fly Διεύθυνση IP(On-the-fly IP) και δεδομένα γεωγραφικής τοποθεσίας για τον ιστότοπο ή την εφαρμογή σας

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



About the author

Εργάζομαι ως σύμβουλος για τη Microsoft. Ειδικεύομαι στην ανάπτυξη εφαρμογών για κινητά για συσκευές Apple και Android και ασχολούμαι επίσης με την ανάπτυξη εφαρμογών για Windows 7. Η εμπειρία μου με smartphone και Windows 7 με κάνει ιδανικό υποψήφιο για αυτή τη θέση.



Related posts