Τι είναι ένα API;
Έχετε δει πιθανώς τον όρο "API". Το λειτουργικό σύστημα, το πρόγραμμα περιήγησης ιστού και οι ενημερώσεις εφαρμογών αναγγέλλουν συχνά νέα API για προγραμματιστές. Αλλά τι είναι ένα API?
Διεπαφή προγραμματισμού εφαρμογών
Ο όρος API είναι ένα αρκτικόλεξο και σημαίνει "Διεπαφή Προγραμματισμού Εφαρμογών".
Σκεφτείτε ένα API σαν ένα μενού σε ένα εστιατόριο. Το μενού παρέχει μια λίστα πιάτων που μπορείτε να παραγγείλετε μαζί με μια περιγραφή για κάθε πιάτο. Όταν καθορίζετε ποια στοιχεία του μενού θέλετε, η κουζίνα του εστιατορίου κάνει την εργασία και σας παρέχει μερικά τελικά πιάτα. Δεν γνωρίζετε ακριβώς πώς το εστιατόριο προετοιμάζει αυτό το φαγητό και δεν χρειάζεται πραγματικά.
Ομοίως, ένα API παραθέτει μια δέσμη ενεργειών που μπορούν να χρησιμοποιήσουν οι προγραμματιστές, μαζί με μια περιγραφή αυτού που κάνουν. Ο προγραμματιστής δεν χρειάζεται απαραίτητα να γνωρίζει πώς, για παράδειγμα, ένα λειτουργικό σύστημα δημιουργεί και παρουσιάζει ένα παράθυρο διαλόγου "Αποθήκευση ως". Απλώς πρέπει να γνωρίζουν ότι είναι διαθέσιμα για χρήση στην εφαρμογή τους.
Αυτό δεν είναι μια τέλεια μεταφορά, δεδομένου ότι οι προγραμματιστές μπορεί να πρέπει να παρέχουν τα δικά τους δεδομένα στο API για να πάρουν τα αποτελέσματα, έτσι ίσως είναι περισσότερο σαν ένα φανταχτερό εστιατόριο όπου μπορείτε να προμηθευτείτε μερικά από τα δικά σας υλικά που η κουζίνα θα λειτουργήσει με.
Αλλά είναι γενικά ακριβής. Τα API επιτρέπουν στους προγραμματιστές να εξοικονομούν χρόνο εκμεταλλευόμενοι την εφαρμογή της πλατφόρμας για να κάνουν το νιτρινο-χαλικώδες έργο. Αυτό βοηθά στη μείωση του αριθμού των προγραμματιστών κώδικα που χρειάζεται να δημιουργήσουν και συμβάλλει επίσης στη δημιουργία μεγαλύτερης συνοχής μεταξύ των εφαρμογών για την ίδια πλατφόρμα. Τα API μπορούν να ελέγχουν την πρόσβαση σε πόρους υλικού και λογισμικού.
Τα API κάνουν τη ζωή πιο εύκολη για τους προγραμματιστές
Ας υποθέσουμε ότι θέλετε να αναπτύξετε μια εφαρμογή για ένα iPhone. Το λειτουργικό σύστημα iOS της Apple παρέχει ένα μεγάλο αριθμό API -όπως κάνει κάθε άλλο λειτουργικό σύστημα- για να σας διευκολύνει.
Εάν θέλετε να ενσωματώσετε ένα πρόγραμμα περιήγησης στο Web για να εμφανίσετε μία ή περισσότερες ιστοσελίδες, για παράδειγμα, δεν χρειάζεται να προγραμματίσετε το δικό σας πρόγραμμα περιήγησης ιστού από την αρχή μόνο για την αίτησή σας. Χρησιμοποιείτε το API WKWebView για να ενσωματώσετε ένα αντικείμενο περιήγησης WebKit (Safari) στην εφαρμογή σας.
Αν θέλετε να τραβήξετε φωτογραφίες ή βίντεο από τη φωτογραφική μηχανή του iPhone, δεν χρειάζεται να γράψετε τη δική σας διεπαφή φωτογραφικής μηχανής. Χρησιμοποιείτε το API της κάμερας για να ενσωματώσετε την ενσωματωμένη κάμερα του iPhone στην εφαρμογή σας. Εάν δεν υπήρχαν API για να γίνει αυτό εύκολο, οι προγραμματιστές εφαρμογών θα πρέπει να δημιουργήσουν το δικό τους λογισμικό κάμερας και να ερμηνεύσουν τις εισόδους του υλικού της κάμερας. Ωστόσο, οι προγραμματιστές του λειτουργικού συστήματος της Apple έχουν κάνει όλη αυτή τη σκληρή δουλειά, έτσι ώστε οι προγραμματιστές να μπορούν να χρησιμοποιήσουν το API της κάμερας για να ενσωματώσουν μια φωτογραφική μηχανή και να συνεχίσουν να κατασκευάζουν την εφαρμογή τους. Και όταν η Apple βελτιώσει το API της κάμερας, όλες οι εφαρμογές που βασίζονται σε αυτό θα επωφεληθούν αυτόματα από τη βελτίωση.
Αυτό ισχύει για κάθε πλατφόρμα. Για παράδειγμα, θέλετε να δημιουργήσετε ένα παράθυρο διαλόγου στα Windows; Υπάρχει ένα API για αυτό. Θέλετε να υποστηρίξετε τον έλεγχο ταυτότητας δακτυλικών αποτυπωμάτων στο Android; Υπάρχει και ένα API, ώστε να μην χρειάζεται να δοκιμάζετε κάθε αισθητήρα δακτυλικών αποτυπωμάτων του κατασκευαστή του Android. Οι προγραμματιστές δεν χρειάζεται να επανεφεύγουν τον τροχό ξανά και ξανά.
API Ελέγξτε την πρόσβαση στους πόρους
Τα API χρησιμοποιούνται επίσης για τον έλεγχο της πρόσβασης σε συσκευές υλικού και λειτουργίες λογισμικού που μια εφαρμογή ενδέχεται να μην έχει απαραίτητα άδεια χρήσης. Αυτός είναι ο λόγος για τον οποίο τα API συχνά διαδραματίζουν σημαντικό ρόλο στην ασφάλεια.
Για παράδειγμα, εάν έχετε επισκεφτεί ποτέ έναν ιστότοπο και έχετε δει στο πρόγραμμα περιήγησής σας ότι ο ιστότοπος ζητά να δει την ακριβή τοποθεσία σας, αυτός ο ιστότοπος προσπαθεί να χρησιμοποιήσει το API γεωγραφικής κατανομής στο πρόγραμμα περιήγησης ιστού σας. Τα προγράμματα περιήγησης Web εκθέτουν API όπως αυτό για να διευκολύνουν τους προγραμματιστές να έχουν πρόσβαση στην τοποθεσία σας - μπορούν απλά να ρωτήσουν "πού είσαι;" και το πρόγραμμα περιήγησης κάνει τη σκληρή δουλειά πρόσβασης στο GPS ή τα κοντινά δίκτυα Wi-Fi για να βρει τη φυσική σας θέση.
Ωστόσο, τα προγράμματα περιήγησης εκθέτουν επίσης αυτές τις πληροφορίες μέσω ενός API, επειδή είναι δυνατό να ελέγχεται η πρόσβαση σε αυτό. Όταν ένας ιστότοπος θέλει πρόσβαση στην ακριβή φυσική σας τοποθεσία, ο μόνος τρόπος για να επιτευχθεί είναι μέσω του API τοποθεσίας. Και όταν ένας ιστότοπος προσπαθεί να το χρησιμοποιήσει, εσείς-ο χρήστης -μπορεί να επιλέξει να επιτρέψει ή να αρνηθεί αυτό το αίτημα. Ο μόνος τρόπος πρόσβασης σε πόρους υλικού όπως ο αισθητήρας GPS είναι μέσω του API, οπότε το πρόγραμμα περιήγησης μπορεί να ελέγχει την πρόσβαση στο υλικό και να περιορίζει τις εφαρμογές που μπορεί να κάνει.
Αυτή η ίδια αρχή χρησιμοποιείται στα σύγχρονα λειτουργικά συστήματα κινητής τηλεφωνίας όπως το iOS και το Android, όπου οι εφαρμογές για κινητά έχουν δικαιώματα που μπορούν να επιβληθούν με έλεγχο της πρόσβασης σε API. Για παράδειγμα, εάν ένας προγραμματιστής προσπαθήσει να αποκτήσει πρόσβαση στην κάμερα μέσω του API της κάμερας, μπορείτε να αρνηθείτε την αίτηση άδειας και η εφαρμογή δεν έχει τρόπο πρόσβασης στην κάμερα της συσκευής σας.
Τα συστήματα αρχείων που χρησιμοποιούν δικαιώματα - όπως συμβαίνει στα Windows, Mac και Linux - έχουν αυτά τα δικαιώματα που επιβάλλονται από το API του συστήματος αρχείων. Μια τυπική εφαρμογή δεν έχει άμεση πρόσβαση στον ακατέργαστο φυσικό σκληρό δίσκο. Αντ 'αυτού, η εφαρμογή πρέπει να έχει πρόσβαση σε αρχεία μέσω ενός API.
Τα API χρησιμοποιούνται για επικοινωνία μεταξύ υπηρεσιών
Τα API χρησιμοποιούνται επίσης για κάθε είδους άλλους λόγους. Για παράδειγμα, εάν έχετε δει ποτέ ένα αντικείμενο Χαρτών Google ενσωματωμένο σε έναν ιστότοπο, αυτός ο ιστότοπος χρησιμοποιεί το API Χαρτών Google για να ενσωματώσει αυτόν το χάρτη. Η Google εκθέτει API όπως αυτή στους προγραμματιστές ιστού, οι οποίοι στη συνέχεια μπορούν να χρησιμοποιήσουν τα API για να γεμίσουν σύνθετα αντικείμενα απευθείας στον ιστότοπό τους. Εάν δεν υπάρχουν τέτοια API, οι προγραμματιστές ίσως χρειαστεί να δημιουργήσουν τους δικούς τους χάρτες και να παράσχουν τα δικά τους δεδομένα χάρτη μόνο για να βάλουν ένα μικρό διαδραστικό χάρτη σε έναν ιστότοπο.
Και επειδή είναι ένα API, η Google μπορεί να ελέγχει την πρόσβαση στους Χάρτες Google σε ιστότοπους τρίτων μερών, διασφαλίζοντας ότι τη χρησιμοποιούν με συνεπή τρόπο αντί να επιχειρούν να ενσωματώσουν με βεβαιότητα ένα πλαίσιο που εμφανίζει τον ιστότοπο του Google Maps, για παράδειγμα.
Αυτό ισχύει για πολλές διαφορετικές ηλεκτρονικές υπηρεσίες. Υπάρχουν API για να ζητήσετε μετάφραση κειμένου από το Google Translate ή να ενσωματώσετε σχόλια ή tweets από το Twitter σε έναν ιστότοπο.
Το πρότυπο OAuth ορίζει επίσης έναν αριθμό API που σας επιτρέπουν να συνδεθείτε σε έναν ιστότοπο με άλλη υπηρεσία - για παράδειγμα, να χρησιμοποιήσετε τους λογαριασμούς σας στο Facebook, Google ή Twitter για να συνδεθείτε σε έναν νέο ιστότοπο χωρίς να δημιουργήσετε νέο λογαριασμό χρήστη μόνο για αυτόν τον ιστότοπο . Τα API είναι τυποποιημένα συμβόλαια που καθορίζουν τον τρόπο με τον οποίο οι προγραμματιστές επικοινωνούν με μια υπηρεσία και το είδος της παραγωγής που αναμένουν να λάβουν οι προγραμματιστές.
Εάν έχετε πετύχει αυτό, θα έχετε μια καλύτερη ιδέα για το τι είναι ένα API. Τελικά, δεν χρειάζεται πραγματικά να ξέρετε τι είναι ένα API εκτός εάν είστε προγραμματιστής. Ωστόσο, αν δείτε μια πλατφόρμα λογισμικού ή μια υπηρεσία που έχει προσθέσει νέα API για διάφορα υλικά ή υπηρεσίες, θα πρέπει να είναι ευκολότερο για τους προγραμματιστές να επωφεληθούν από τέτοιες λειτουργίες.
Πιστωτική Εικόνα: patpitchaya / Shutterstock.com.