Πίνακας περιεχομένων[Κρύβω][Προβολή]
Θέλετε να συνδέσετε την εφαρμογή σας με το Facebook ώστε να μπορεί να δημιουργεί αναρτήσεις αυτόματα ή με το Instagram για να μπορείτε να αναδημοσιεύετε φωτογραφίες με συγκεκριμένα hashtag;
Θα μπορούσατε επίσης να θέλετε να συμπεριλάβετε βίντεο YouTube στον ιστότοπό σας. Οι διεπαφές προγραμματισμού εφαρμογών σάς επιτρέπουν να εκτελείτε όλες αυτές τις εργασίες και πολλά άλλα (API).
Διαφορετικές εφαρμογές μπορούν να «μιλούν» μεταξύ τους με ασφαλή και τυποποιημένο τρόπο χάρη σε API όπως το Instagram API, το Facebook API και το YouTube API.
Με άλλα λόγια, ένα πρόγραμμα μπορεί να λάβει χαρακτηριστικά ή δεδομένα από άλλο λογισμικό και να τα χρησιμοποιήσει για να βελτιώσει τις δικές του δυνατότητες ή την εμπειρία χρήστη. Πώς μπορούν όμως οι εφαρμογές να υποβάλουν αυτά τα αιτήματα, να τα επεξεργαστούν και να ανταποκριθούν σε αυτά με τρόπο που μπορούν να κατανοήσουν οι άλλοι;
Αυτό εξαρτάται από το πώς δημιουργήθηκε το API. Όταν συζητάμε σχέδια API (διεπαφή προγραμματισμού εφαρμογών), είναι συνηθισμένο να συγκρίνουμε το SOAP με το REST, δύο από τα πιο σημαντικά παραδείγματα API.
Μόλις τα SOAP API (πρωτόκολλο πρόσβασης απλού αντικειμένου) έγιναν το χρυσό πρότυπο για εταιρείες όπως η Oracle, η Sun και το PayPal, υπήρξε μια ίση και αντίθετη ανταπόκριση ένα χρόνο αργότερα προς τα API REST από την Google, την Amazon και το eBay.
Σε αυτήν την ανάρτηση, θα συγκρίνουμε και θα αντιπαραβάλλουμε τα API SOAP με τα REST API, ώστε να αποφασίσετε ποιο είναι καλύτερο για τους σκοπούς σας.
Θα ξεκινήσουμε ορίζοντας το API.
Τι είναι το API;
Η διεπαφή προγραμματισμού εφαρμογών αναφέρεται ως API. Τα API είναι ουσιαστικά μια συλλογή μεθόδων και λειτουργιών που επιτρέπουν την ανάπτυξη εφαρμογών. Έχουν πρόσβαση στις πληροφορίες και τις λειτουργίες διαφορετικών προγραμμάτων, υπηρεσιών ή λειτουργικών συστημάτων.
Λειτουργούν ως ένα είδος μεσάζοντα μεταξύ διαφόρων συστημάτων λογισμικού. Επιτρέπουν την «ομιλία» μεταξύ δύο μη συνδεδεμένων προγραμμάτων.
Ας πάρουμε το παράδειγμα ενός χρηματιστή που ασχολείται ενεργά με τις συναλλαγές και τις χρηματοπιστωτικές αγορές. Μια συλλογή από αυτοματοποιημένα αλγόριθμοι συναλλαγών μπορεί να συνδεθεί με την αγαπημένη πλατφόρμα μεσίτη συναλλαγών του εμπόρου μέσω ενός API. Αυτό σας δίνει τη δυνατότητα, τον έμπορο, να πραγματοποιείτε ηλεκτρονικές συναλλαγές ή να βλέπετε προσφορές και δεδομένα τιμολόγησης σε πραγματικό χρόνο.
Τι είναι το REST;
Τα αληθινά API «υπηρεσιών Ιστού» περιλαμβάνουν το REST (Representational State Transfer). Τα REST API είναι χτισμένα σε URI (Uniform Resource Identifiers, των οποίων ένα URL είναι ένα ειδικό είδος), το πρωτόκολλο HTTP και την απίστευτα συμβατή με το πρόγραμμα περιήγησης μορφή δεδομένων JSON.
Το πρωτόκολλο SOAP, όπως ήδη αναφέραμε, θα μπορούσε επίσης να χρησιμοποιηθεί. Τα REST API μπορεί να είναι εύκολο να δημιουργηθούν και να αναπτυχθούν, αλλά μπορεί επίσης να είναι τεράστια και δύσκολα—όλα εξαρτώνται από το πώς δημιουργούνται, επεκτείνονται και τι προορίζονται να κάνουν.
Περιορισμοί πόρων, μειωμένες απαιτήσεις ασφαλείας, συμβατότητα προγράμματος-πελάτη προγράμματος περιήγησης, δυνατότητα εντοπισμού, υγεία δεδομένων και επεκτασιμότητα είναι μερικοί λόγοι για τους οποίους θα θέλατε να αναπτύξετε ένα API για να είναι RESTful—πράγματα που ισχύουν πραγματικά για τις υπηρεσίες Ιστού.
Το REST προσφέρει μια πιο ελαφριά επιλογή. Το SOAP ήταν δύσκολο στη χρήση και επαχθές για πολλούς προγραμματιστές. Για παράδειγμα, η χρήση του SOAP με JavaScript απαιτεί τη σύνταξη πολύ κώδικα για την ολοκλήρωση απλών λειτουργιών, αφού η απαραίτητη δομή XML πρέπει να δημιουργείται κάθε φορά.
Το REST (συνήθως) χρησιμοποιεί μια απλή διεύθυνση URL στη θέση ενός αιτήματος XML. Αν και υπάρχουν σπάνιες περιπτώσεις όπου πρέπει να προσφέρετε περισσότερες λεπτομέρειες, η πλειονότητα των υπηρεσιών web RESTful χρησιμοποιούν μόνο την τεχνική URL.
Τα τέσσερα ρήματα HTTP 1.1 GET, POST, PUT και DELETE μπορούν να χρησιμοποιηθούν από το REST για την εκτέλεση λειτουργιών. Σε αντίθεση με το SOAP, το REST δεν χρειάζεται η απάντηση να είναι σε XML.
Διατίθενται υπηρεσίες web που βασίζονται σε REST και εξάγουν δεδομένα σε μορφές Command Separated Value (CSV), JavaScript Object Notation (JSON) και Really Simple Syndication (RSS) (RSS).
Ο στόχος είναι να μπορείτε να λάβετε τα αποτελέσματα που χρειάζεστε σε μια εύκολη στην ανάλυση μορφή στη γλώσσα που χρησιμοποιείτε για την εφαρμογή σας.
Χαρακτηριστικά
- Το REST δίνει έμφαση στην απλότητα πάνω από όλα, λόγω των πρωτοκόλλων HTTP.
- Ο Ιστός είναι ο καταλληλότερος για REST. Είναι συμβατό με προγράμματα περιήγησης επειδή το JSON χρησιμοποιείται ως μορφή δεδομένων.
- Το REST είναι γνωστό για την εξαιρετική επεκτασιμότητα και την ταχύτητά του.
- Οι συνδέσεις πελάτη-διακομιστή και οι αρχιτεκτονικές γίνονται πιο προσιτές από τα API REST. Εάν είναι RESTful, κατασκευάζεται χρησιμοποιώντας αυτό το μοντέλο πελάτη-διακομιστή, με διαδρομές μετ' επιστροφής μεταξύ των δύο μερών που περνούν ωφέλιμα φορτία δεδομένων.
- Τα REST API χρησιμοποιούν μια μεμονωμένη τυπική διεπαφή. Η διασφάλιση ότι όλες οι εφαρμογές συνδέονται ομοιόμορφα και μέσω της ίδιας πύλης, βελτιστοποιεί τον τρόπο επικοινωνίας των εφαρμογών με το API.
Τι είναι το SOAP;
Το δικό της πρωτόκολλο, που ονομάζεται SOAP (Simple Object Access Protocol), είναι λίγο πιο περίπλοκο από το REST, καθώς καθορίζει περισσότερα πρότυπα, συμπεριλαμβανομένων εκείνων που σχετίζονται με την ασφάλεια και την παράδοση μηνυμάτων.
Αυτά τα εγγενή πρότυπα έρχονται με λίγο επιπλέον κόστος. Ωστόσο, μπορούν να αποτελέσουν καθοριστικό παράγοντα για τις επιχειρήσεις που χρειάζονται πιο εκτεταμένες δυνατότητες συμμόρφωσης ασφάλειας, συναλλαγών και ACID (Atomicity, Consistency, Isolation, Durability).
Για χάρη αυτής της σύγκρισης, είναι σημαντικό να σημειωθεί ότι πολλά από τα πλεονεκτήματα του SOAP δεν ισχύουν συχνά για εφαρμογές υπηρεσιών web, καθιστώντας τις πιο κατάλληλες για σενάρια εταιρικού τύπου.
Υψηλότεροι βαθμοί ασφάλειας (όπως όταν α mobile app αλληλεπιδρά με μια τράπεζα), εφαρμογές ανταλλαγής μηνυμάτων που απαιτούν αξιόπιστη επικοινωνία, αλληλεπίδραση με παλαιού τύπου συστήματα ή συμμόρφωση με ACID είναι μερικοί λόγοι για τους οποίους θα θέλατε να σχεδιάσετε μια εφαρμογή χρησιμοποιώντας ένα API SOAP.
Οι δυνατότητες ανταλλαγής μηνυμάτων που προσφέρει το SOAP βασίζονται εξ ολοκλήρου σε XML. Παλαιότερες τεχνολογίες που δεν είναι συμβατές με το Διαδίκτυο, όπως το Μοντέλο Αντικειμένου Κατανεμημένου Στοιχείου (DCOM) και το Common Object Request Broker Architecture, αντικαταστάθηκαν από το SOAP όταν πρωτοδημιουργήθηκε από τη Microsoft (CORBA).
Η εξάρτηση από δυαδικές επικοινωνίες προκαλεί αποτυχία αυτών των συστημάτων. Μέσω του Διαδικτύου, τα μηνύματα XML όπως αυτά που χρησιμοποιούνται από το SOAP λειτουργούν καλύτερα.
Χαρακτηριστικά
- Η ασφάλεια του SOAP είναι σημαντικά αυστηρότερη. Το WS-Security είναι ένα ενσωματωμένο πρότυπο που προσφέρει στο SOAP πρόσθετες δυνατότητες ασφάλειας σε εταιρικό επίπεδο, εάν χρειάζεται, εκτός από την υποστήριξη SSL.
- Επιτυχής/δοκιμάστε ξανά το σκεπτικό για αξιόπιστη απόδοση μηνυμάτων. Επειδή το REST δεν διαθέτει τυποποιημένο μηχανισμό μηνυμάτων, μπορεί να προσπαθήσει ξανά μόνο όταν αποτύχει η επικοινωνία. Ακόμη και όταν χρησιμοποιούνται ενδιάμεσα SOAP, το SOAP προσφέρει αξιοπιστία από άκρο σε άκρο λόγω της ενσωματωμένης λογικής επιτυχημένης/επαναμέτρησης.
- Το SOAP συμμορφώνεται ήδη με τα πρότυπα ACID. Υπαγορεύοντας πώς οι συναλλαγές μπορούν να αλληλεπιδράσουν με τη βάση δεδομένων, η συμμόρφωση με το ACID ελαχιστοποιεί τις ανωμαλίες και προστατεύει τη συνοχή μιας βάσης δεδομένων. Επειδή το ACID είναι πιο προσεκτικό από άλλα μοντέλα συνέπειας δεδομένων, χρησιμοποιείται συχνά κατά τη διαχείριση ευαίσθητων συναλλαγών, οικονομικών ή μη.
- Είναι απλό για τους προγραμματιστές να το κατανοήσουν, καθώς το SOAP είναι μια επικοινωνία που βασίζεται εξ ολοκλήρου σε XML.
- Το πρωτόκολλο ανταλλαγής μηνυμάτων XML είναι μια προσθήκη στο πρωτόκολλο HTTP.
- Οι επικοινωνίες από έναν υπολογιστή σε έναν άλλο υπολογιστή μπορούν να διαδοθούν μέσω μηνυμάτων SOAP.
- Η αρχιτεκτονική πελάτη-διακομιστή μπορεί επίσης να υλοποιηθεί. Ένα μήνυμα πρωτοκόλλου SOAP μπορεί να χρησιμοποιηθεί από τον πελάτη για να καλέσει μια κλήση απομακρυσμένης διαδικασίας που βρίσκεται στην πλευρά του διακομιστή.
Διαφορές REST Vs SOAP
1. Αρχιτεκτονική
Ένα API προορίζεται να εμφανίζει κυρίως συγκεκριμένα στοιχεία της επιχειρηματικής λογικής μιας εφαρμογής σε έναν διακομιστή. Ενώ το REST χρησιμοποιεί URI για τον ίδιο σκοπό, το SOAP χρησιμοποιεί μια διεπαφή υπηρεσίας για αυτό.
Τα REST API δημιουργούνται μετά από τα δεδομένα, ενώ τα SOAP API αναπτύσσονται σύμφωνα με τις λειτουργίες που απεικονίζει το API. Σε σύγκριση με το SOAP, το οποίο βασίζεται περισσότερο στις λειτουργίες, το REST είναι ένα σχέδιο που βασίζεται περισσότερο σε δεδομένα.
2. Caching
Τα δεδομένα που έχουν επισημανθεί ως προσωρινά αποθηκευμένα μπορούν να χρησιμοποιηθούν ξανά από τα προγράμματα περιήγησης χωρίς να απαιτείται από αυτούς να υποβάλουν νέο αίτημα στον διακομιστή. Η εξοικονόμηση χρόνου και προσπάθειας είναι ένα όφελος από αυτό.
Οι απαντήσεις δεν θα αποθηκευτούν στην κρυφή μνήμη σε επίπεδο HTTP, καθώς τα ερωτήματα SOAP υποβάλλονται μέσω αιτημάτων POST, τα οποία το πρότυπο HTTP θεωρεί ότι δεν είναι ισχυρά. Εάν θέλετε να χρησιμοποιήσετε προσωρινή αποθήκευση, πρέπει να δημιουργήσετε τις απαραίτητες τεχνικές καθώς τα API REST δεν περιλαμβάνουν αυτήν την υλοποίηση.
3. Πόροι & Εύρος ζώνης
Λόγω της μεταφοράς ωφέλιμου φορτίου τύπου φακέλου που χρησιμοποιείται από το SOAP, υπάρχει μια μέτρια αύξηση στα γενικά έξοδα, γεγονός που απαιτεί επιπλέον εύρος ζώνης. Η ελαφριά φύση του REST είναι πλεονέκτημα σε αυτές τις περιπτώσεις, επειδή χρησιμοποιείται γενικά για υπηρεσίες web.
4. Ασφάλεια
Η ασφάλεια WS, την οποία υποστηρίζει το SOAP και είναι ελαφρώς πιο εμπεριστατωμένη από το SSL σε επίπεδο μεταφοράς, είναι επιθυμητή. Η ενσωμάτωση μέτρων ασφαλείας σε επίπεδο επιχείρησης με αυτό είναι επίσης ιδανική.
Η κρυπτογράφηση από άκρο σε άκρο με χρήση SSL υποστηρίζεται τόσο από το SOAP όσο και από το REST και το REST μπορεί να χρησιμοποιήσει το HTTPS, την ασφαλή παραλλαγή του πρωτοκόλλου HTTP.
5. Χειρισμός ωφέλιμων φορτίων
Τα δεδομένα που μεταδίδονται μέσω του Διαδικτύου αναφέρονται ως ωφέλιμο φορτίο. Ένα ωφέλιμο φορτίο που θεωρείται «βαρύ» χρειάζεται πρόσθετους πόρους. Σε σύγκριση με το SOAP, το οποίο χρησιμοποιεί XML, το REST χρησιμοποιεί συχνά JSON και HTTP για να βοηθήσει στη μείωση του ωφέλιμου φορτίου.
Μια εξειδικευμένη βιβλιοθήκη πελάτη με παραγόμενο κώδικα πρέπει συνήθως να χρησιμοποιείται από τον Πελάτη για πρόσβαση στα API SOAP λόγω του εξαιρετικά αυστηρού συμβολαίου επικοινωνίας τους.
Ως αποτέλεσμα, το SOAP προσφέρει μικρότερο επίπεδο αφαίρεσης από το REST και συνδέεται πιο στενά με τον διακομιστή.
Πότε να χρησιμοποιήσετε το REST;
- Δημιουργία δημόσιων API: Τα REST API προτιμώνται για τη δημιουργία δημόσιων υπηρεσιών ιστού επειδή θεωρείται ότι είναι πιο απλά στη χρήση και την υιοθέτησή τους από τα API SOAP. Επιπλέον, το SOAP προσφέρει πολλά ενσωματωμένα μέτρα ασφαλείας που δεν διαθέτει το REST, αν και αυτά τα χαρακτηριστικά δεν απαιτούνται όταν εργάζεστε με ανοιχτά δεδομένα και υπηρεσίες.
- Κατασκευή εφαρμογών για κινητά: Το REST είναι τέλειο για τη δημιουργία εφαρμογών για κινητές συσκευές, καθώς είναι μικρό, αποτελεσματικό, χωρίς πολιτεία και με δυνατότητα προσωρινής αποθήκευσης.
- Αξιοποίηση σπάνιων πόρων διακομιστή και εύρους ζώνης: Όλα τα αιτήματα σε ένα REST API πρέπει να είναι χωρίς κατάσταση, πράγμα που σημαίνει ότι κάθε αλληλεπίδραση είναι ξεχωριστή και κάθε αίτημα και απάντηση περιέχει όλα τα δεδομένα που είναι απαραίτητα για την ολοκλήρωση αυτής της αλληλεπίδρασης. Ο διακομιστής δεν αποθηκεύει εγγραφές προηγούμενων αιτημάτων, καθώς αντιμετωπίζει το καθένα ως νέο αίτημα. Ως αποτέλεσμα, ο διακομιστής απαιτεί πολύ λιγότερη μνήμη και λειτουργεί πιο γρήγορα επειδή ένα αίτημα δεν απαιτεί περαιτέρω ενέργειες ή την ανάκτηση ιστορικών δεδομένων.
Πότε να χρησιμοποιήσετε το SOAP;
- Δημιουργία ιδιωτικών API, ιδιαίτερα για μεγάλες επιχειρήσεις: Το SOAP είναι τέλειο για εταιρικές εφαρμογές, καθώς επιτρέπει τη ροή δεδομένων σε ένα αποκεντρωμένο, κατανεμημένο περιβάλλον και περιέχει πολλά χαρακτηριστικά διαδικτυακής ασφάλειας.
- Χρησιμοποιώντας ένα πρωτόκολλο μεταφοράς διαφορετικό από το HTTP ως το υποκείμενο επίπεδο: Το SOAP δεν εξαρτάται από το HTTP ως το υποκείμενο στρώμα. Ανάλογα με την εφαρμογή σας, θα μπορούσατε να χρησιμοποιήσετε SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service) ή άλλο πρωτόκολλο μεταφοράς.
- Εργασία με κρατικές λειτουργίες: Σε αντίθεση με τα αιτήματα προς τα REST API, τα αιτήματα προς τα API SOAP έχουν κατάσταση, που σημαίνει ότι ο διακομιστής αποθηκεύει πληροφορίες σχετικά με τον πελάτη και τις χρησιμοποιεί σε μια αλυσίδα αιτημάτων ή λειτουργιών. Ακόμα κι αν αυτό χρησιμοποιεί περισσότερο εύρος ζώνης και πόρους διακομιστή, είναι ζωτικής σημασίας για την εκτέλεση συνηθισμένων ή συνδεδεμένων ενεργειών, όπως οι τραπεζικές μεταφορές.
Συμπέρασμα
Η σύγκριση μεταξύ των API REST και SOAP καθιστά προφανές ότι το REST είναι προτιμότερο από το SOAP. Ωστόσο, υπάρχουν περιπτώσεις όπου απαιτείται το SOAP API. Σε ορισμένες περιπτώσεις, οι υπηρεσίες ιστού δημιουργούνται με συνδυασμό REST και SOAP API.
Επομένως, η περίπτωση χρήσης θα καθορίσει ποιο στυλ API θα λειτουργήσει καλύτερα.
Αφήστε μια απάντηση