Εκμάθηση Υπηρεσιών Ιστού RESTful: Παράδειγμα API REST
⚡ Έξυπνη Σύνοψη
Οι υπηρεσίες RESTful Web Services παρέχουν μια ελαφριά, χωρίς καταστάσεις προσέγγιση για εφαρμογές, ώστε να ανταλλάσσουν δεδομένα μέσω HTTP χρησιμοποιώντας τυπικά ρήματα. Εκθέτουν πόρους μέσω καθαρών URLs, επιτρέποντας την επεκτάσιμη, ανεξάρτητη από πλατφόρμα επικοινωνία μεταξύ κατανεμημένων πελατών, διακομιστών, κινητών συσκευών και σύγχρονων πλατφορμών cloud και τεχνητής νοημοσύνης.
Τι είναι οι Restful Web Services;
Ξεκούραστες Υπηρεσίες Ιστού είναι μια ελαφριά, συντηρήσιμη και επεκτάσιμη υπηρεσία που βασίζεται στην αρχιτεκτονική REST. Μια Restful Web Service εκθέτει ένα API από την εφαρμογή σας με ασφαλή, ομοιόμορφο, χωρίς καταστάσεις τρόπο στον καλούντα πελάτη. Ο καλών πελάτης μπορεί στη συνέχεια να εκτελέσει προκαθορισμένες λειτουργίες χρησιμοποιώντας την υπηρεσία Restful. Το υποκείμενο πρωτόκολλο για το REST είναι το HTTP και το REST σημαίνει REpresentational State Transfer.
Με απλά λόγια, το REST ορίζει έναν τυπικό τρόπο δημιουργίας, ανάγνωσης, ενημέρωσης και διαγραφής πόρων, όπως εγγράφων, εικόνων ή εγγραφών βάσεων δεδομένων, μέσω του ιστού. Επειδή βασίζεται σε απλό HTTP, σχεδόν οποιαδήποτε γλώσσα προγραμματισμού ή συσκευή μπορεί να καταναλώσει μια υπηρεσία RESTful χωρίς ειδικά εργαλεία.
Γιατί να χρησιμοποιήσετε τις υπηρεσίες Restful Web Services;
Πριν εξερευνήσουμε τις τεχνικές λεπτομέρειες, είναι χρήσιμο να κατανοήσουμε γιατί το REST έγινε τόσο δημοφιλές. Οι υπηρεσίες RESTful Web Services απέκτησαν εξέχουσα θέση για τους ακόλουθους λόγους:
1. Ετερογενείς γλώσσες και περιβάλλοντα – Αυτός είναι ένας από τους βασικούς λόγους, ο οποίος είναι ο ίδιος με αυτόν που έχουμε δει για SOAP επίσης.
- Δίνει τη δυνατότητα σε διαδικτυακές εφαρμογές που βασίζονται σε διάφορες γλώσσες προγραμματισμού να επικοινωνούν μεταξύ τους.
- Με τη βοήθεια των υπηρεσιών Restful, αυτές οι διαδικτυακές εφαρμογές μπορούν να βρίσκονται σε διαφορετικά περιβάλλοντα. Μερικές θα μπορούσαν να βρίσκονται σε Windows, και άλλα θα μπορούσαν να είναι σε Linux.
Στο τέλος, ανεξάρτητα από το περιβάλλον, το αποτέλεσμα θα πρέπει να είναι πάντα το ίδιο: οι εφαρμογές θα πρέπει να μπορούν να επικοινωνούν μεταξύ τους. Οι ήρεμες διαδικτυακές υπηρεσίες προσφέρουν αυτήν την ευελιξία σε εφαρμογές που βασίζονται σε διάφορες γλώσσες προγραμματισμού και πλατφόρμες.
Η παρακάτω εικόνα δείχνει ένα παράδειγμα μιας διαδικτυακής εφαρμογής που έχει την απαίτηση να επικοινωνεί με άλλες εφαρμογές όπως το Facebook, το Twitter και... Google.
Αν μια εφαρμογή-πελάτης έπρεπε να συνεργαστεί με ιστότοπους όπως το Facebook και το Twitter, οι προγραμματιστές θα έπρεπε κανονικά να γνωρίζουν σε ποια γλώσσα και πλατφόρμα έχουν κατασκευαστεί αυτοί οι ιστότοποι. Με βάση αυτό, θα μπορούσαν να γράψουν τον κώδικα διεπαφής, αλλά αυτή η προσέγγιση θα μπορούσε να αποδειχθεί εφιάλτης στη συντήρησή της.
Αντ' αυτού, το Facebook, το Twitter και Google εκθέτουν τη λειτουργικότητά τους με τη μορφή υπηρεσιών web Restful. Αυτό επιτρέπει σε οποιαδήποτε εφαρμογή-πελάτης να καλεί αυτές τις υπηρεσίες web μέσω REST, ανεξάρτητα από την υποκείμενη τεχνολογία.
2. Το συμβάν των Συσκευών – Σήμερα, όλα πρέπει να δουλέψουν Κινητό συσκευές, είτε πρόκειται για κινητό τηλέφωνο, φορητό υπολογιστή ή ακόμα και για σύστημα αυτοκινήτου.
Φανταστείτε την προσπάθεια που απαιτείται για να κωδικοποιηθούν εφαρμογές σε αυτές τις συσκευές ώστε να επικοινωνούν με κανονικές εφαρμογές ιστού. Και πάλι, τα Restful API κάνουν αυτή τη δουλειά απλούστερη επειδή, όπως αναφέρθηκε στο πρώτο σημείο, δεν χρειάζεται πραγματικά να γνωρίζετε το υποκείμενο επίπεδο της συσκευής.
3. Το γεγονός του Νέφους – Όλα μετακινούνται στο cloud. Οι εφαρμογές μετακινούνται σιγά σιγά σε συστήματα που βασίζονται στο cloud, όπως π.χ. Azure or Amazon. Azure και Amazon παρέχουν πολλά API που βασίζονται στην αρχιτεκτονική Restful. Ως εκ τούτου, οι εφαρμογές πρέπει πλέον να αναπτύσσονται με τέτοιο τρόπο ώστε να είναι συμβατές με το cloud. Δεδομένου ότι όλες οι αρχιτεκτονικές που βασίζονται στο cloud λειτουργούν με βάση την αρχή REST, είναι λογικό οι υπηρεσίες web να προγραμματίζονται σε μια αρχιτεκτονική που βασίζεται σε REST, ώστε να αξιοποιούνται στο έπακρο οι υπηρεσίες cloud.
Ξεκούραστα βασικά στοιχεία
Οι διαδικτυακές υπηρεσίες REST έχουν διανύσει μεγάλη πρόοδο από την έναρξή τους. Το 2002, η κοινοπραξία Ιστού δημοσίευσε τον ορισμό των διαδικτυακών υπηρεσιών WSDL και SOAP. Αυτός αποτέλεσε το πρότυπο για τον τρόπο υλοποίησης των διαδικτυακών υπηρεσιών.
Το 2004, η διαδικτυακή κοινοπραξία δημοσίευσε επίσης τον ορισμό ενός πρόσθετου προτύπου που ονομάζεται RESTful. Τα τελευταία χρόνια, αυτό το πρότυπο έχει γίνει αρκετά δημοφιλές και πλέον χρησιμοποιείται από πολλούς από τους πιο δημοφιλείς ιστότοπους σε όλο τον κόσμο, συμπεριλαμβανομένων των Facebook και Twitter.
Το REST είναι ένας τρόπος πρόσβασης σε πόρους που βρίσκονται σε ένα συγκεκριμένο περιβάλλον. Για παράδειγμα, θα μπορούσατε να έχετε έναν διακομιστή που φιλοξενεί σημαντικά έγγραφα, εικόνες ή βίντεο. Όλα αυτά είναι παραδείγματα πόρων. Εάν ένας υπολογιστής-πελάτης, όπως ένα πρόγραμμα περιήγησης ιστού, χρειάζεται οποιονδήποτε από αυτούς τους πόρους, πρέπει να στείλει ένα αίτημα στον διακομιστή. Οι υπηρεσίες REST ορίζουν έναν τυπικό τρόπο με τον οποίο είναι δυνατή η πρόσβαση σε αυτούς τους πόρους.
Τα βασικά στοιχεία μιας υλοποίησης RESTful είναι τα εξής:
- Υποστηρικτικό υλικό – Το πρώτο βασικό στοιχείο είναι ο ίδιος ο πόρος. Ας υποθέσουμε ότι μια διαδικτυακή εφαρμογή σε έναν διακομιστή έχει αρχεία αρκετών υπαλλήλων. Ας υποθέσουμε ότι URL της διαδικτυακής εφαρμογής είναι https://demo.guru99.comΤώρα, για να αποκτήσετε πρόσβαση σε έναν πόρο αρχείων υπαλλήλων μέσω των υπηρεσιών REST, μπορείτε να εκτελέσετε την εντολή https://demo.guru99.com/employee/1Αυτή η εντολή δίνει εντολή στον διακομιστή ιστού να παράσχει τα στοιχεία του υπαλλήλου του οποίου ο αριθμός υπαλλήλου είναι 1.
- Request Verbs – Αυτά περιγράφουν τι θέλετε να κάνετε με τον πόρο. Ένα πρόγραμμα περιήγησης εκδίδει ένα ρήμα GET για να δώσει εντολή στο τελικό σημείο ότι θέλει να λάβει δεδομένα. Ωστόσο, υπάρχουν πολλά άλλα διαθέσιμα ρήματα, όπως τα POST, PUT και DELETE. Έτσι, στην περίπτωση του παραδείγματος https://demo.guru99.com/employee/1, το πρόγραμμα περιήγησης ιστού στην πραγματικότητα εκδίδει ένα ρήμα GET επειδή θέλει να λάβει τις λεπτομέρειες του αρχείου του υπαλλήλου.
- Αίτηση κεφαλίδων – Αυτές είναι πρόσθετες οδηγίες που αποστέλλονται με το αίτημα. Ενδέχεται να καθορίζουν τον τύπο της απαιτούμενης απάντησης ή τις λεπτομέρειες εξουσιοδότησης.
- Σώμα αιτήματος – Αυτά είναι τα δεδομένα που αποστέλλονται με το αίτημα. Τα δεδομένα αποστέλλονται κανονικά στο σώμα του αιτήματος όταν υποβάλλεται ένα αίτημα POST στην υπηρεσία web REST. Σε μια κλήση POST, ο πελάτης ενημερώνει την υπηρεσία web REST ότι θέλει να προσθέσει έναν πόρο στον διακομιστή. Επομένως, το σώμα του αιτήματος θα έχει τις λεπτομέρειες του πόρου που πρέπει να προστεθεί.
- Σώμα ανταπόκρισης – Αυτό είναι το κύριο σώμα της απόκρισης. Έτσι, στο παράδειγμα RESTful API μας, αν υποβάλουμε ερώτημα στον διακομιστή ιστού μέσω του αιτήματος https://demo.guru99.com/employee/1, ο διακομιστής ιστού ενδέχεται να επιστρέψει ένα έγγραφο XML με όλα τα στοιχεία του υπαλλήλου στο σώμα της απάντησης.
- Κωδικοί κατάστασης απόκρισης – Αυτοί είναι οι γενικοί κωδικοί που επιστρέφονται μαζί με την απάντηση από τον διακομιστή ιστού. Ένα παράδειγμα είναι ο κωδικός 200, ο οποίος επιστρέφεται κανονικά όταν δεν υπάρχει σφάλμα κατά την επιστροφή μιας απάντησης στον πελάτη.
Μέθοδοι ξεκούρασης
Το παρακάτω διάγραμμα δείχνει τα περισσότερα ρήματα (POST, GET, PUT και DELETE) και ένα παράδειγμα REST API που δείχνει τι θα σημαίνουν.
Ας υποθέσουμε ότι έχουμε ορίσει μια RESTful διαδικτυακή υπηρεσία στην τοποθεσία https://demo.guru99.com/employeeΌταν ο πελάτης υποβάλλει οποιοδήποτε αίτημα σε αυτήν την υπηρεσία ιστού, μπορεί να καθορίσει οποιοδήποτε από τα κανονικά ρήματα HTTP όπως GET, POST, DELETE και PUT. Παρακάτω θα δείτε τι θα συνέβαινε εάν τα αντίστοιχα ρήματα αποστέλλονταν από τον πελάτη.
- ΜΕΤΑ – Αυτό θα χρησιμοποιηθεί για τη δημιουργία ενός νέου υπαλλήλου χρησιμοποιώντας την υπηρεσία web RESTful.
- ΠΑΡΤΕ – Αυτό θα χρησιμοποιηθεί για τη λήψη μιας λίστας με όλους τους υπαλλήλους που χρησιμοποιούν την διαδικτυακή υπηρεσία RESTful.
- ΒΆΖΩ – Αυτό θα χρησιμοποιηθεί για την ενημέρωση όλων των υπαλλήλων που χρησιμοποιούν την διαδικτυακή υπηρεσία RESTful.
- ΔΙΑΓΡΑΦΗ – Αυτό θα χρησιμοποιηθεί για τη διαγραφή όλων των υπαλλήλων που χρησιμοποιούν την υπηρεσία RESTful.
Ας ρίξουμε τώρα μια ματιά από την οπτική γωνία μιας μόνο εγγραφής. Ας υποθέσουμε ότι υπήρχε μια εγγραφή υπαλλήλου με αριθμό υπαλλήλου 1. Οι ακόλουθες ενέργειες θα είχαν τις αντίστοιχες σημασίες τους.
- ΜΕΤΑ – Αυτό δεν θα ήταν εφαρμόσιμο, καθώς ανακτούμε δεδομένα του υπαλλήλου 1, ο οποίος έχει ήδη δημιουργηθεί.
- ΠΑΡΤΕ – Αυτό θα χρησιμοποιηθεί για τη λήψη των στοιχείων του υπαλλήλου με αριθμό υπαλλήλου 1 χρησιμοποιώντας την υπηρεσία web RESTful.
- ΒΆΖΩ – Αυτό θα χρησιμοποιηθεί για την ενημέρωση των στοιχείων του υπαλλήλου με αριθμό υπαλλήλου 1 χρησιμοποιώντας την υπηρεσία web RESTful.
- ΔΙΑΓΡΑΦΗ – Αυτό χρησιμοποιείται για τη διαγραφή των στοιχείων του υπαλλήλου με αριθμό υπαλλήλου 1.
Ξεκουραστικός Archiδομή
Μια εφαρμογή ή αρχιτεκτονική που θεωρείται RESTful ή τύπου REST έχει τα ακόλουθα χαρακτηριστικά.
1. Η κατάσταση και η λειτουργικότητα χωρίζονται σε κατανεμημένους πόρους – Αυτό σημαίνει ότι κάθε πόρος θα πρέπει να είναι προσβάσιμος μέσω των συνήθων εντολών HTTP GET, POST, PUT ή DELETE. Έτσι, αν κάποιος θέλει να λάβει ένα αρχείο από έναν διακομιστή, θα πρέπει να μπορεί να εκδώσει το αίτημα GET και να λάβει το αρχείο. Αν θέλει να τοποθετήσει ένα αρχείο στον διακομιστή, θα πρέπει να μπορεί να εκδώσει είτε το αίτημα POST είτε το αίτημα PUT. Τέλος, αν θέλει να διαγράψει ένα αρχείο από τον διακομιστή, μπορεί να εκδώσει το αίτημα DELETE.
2. Η αρχιτεκτονική είναι client/server, χωρίς κατάσταση, σε επίπεδα και υποστηρίζει προσωρινή αποθήκευση.
- Ο πελάτης-διακομιστής είναι η τυπική αρχιτεκτονική όπου ο διακομιστής μπορεί να είναι ο διακομιστής web που φιλοξενεί την εφαρμογή και ο πελάτης μπορεί να είναι τόσο απλός όσο το πρόγραμμα περιήγησης Ιστού.
- Ανιθαγενής σημαίνει ότι η κατάσταση της αίτησης δεν διατηρείται στο REST. Για παράδειγμα, εάν διαγράψετε έναν πόρο από έναν διακομιστή χρησιμοποιώντας την εντολή DELETE, δεν μπορείτε να περιμένετε ότι αυτές οι πληροφορίες διαγραφής θα περάσουν στο επόμενο αίτημα.
Για να διασφαλίσετε ότι ο πόρος διαγράφεται, θα χρειαστεί να εκδώσετε το αίτημα GET. Το αίτημα GET θα χρησιμοποιηθεί πρώτα για την ανάκτηση όλων των πόρων στον διακομιστή, μετά από το οποίο θα πρέπει να διαπιστωθεί εάν ο πόρος έχει πράγματι διαγραφεί.
RESTFul Αρχές και Περιορισμοί
Η αρχιτεκτονική REST βασίζεται σε ορισμένα χαρακτηριστικά, τα οποία αναλύονται παρακάτω. Οποιαδήποτε διαδικτυακή υπηρεσία RESTful πρέπει να συμμορφώνεται με τα παρακάτω χαρακτηριστικά για να ονομάζεται RESTful. Αυτά τα χαρακτηριστικά είναι επίσης γνωστά ως αρχές σχεδιασμού που πρέπει να ακολουθούνται κατά την εργασία με υπηρεσίες που βασίζονται στο RESTful.
Αυτή είναι η πιο θεμελιώδης απαίτηση μιας αρχιτεκτονικής που βασίζεται σε REST. Αυτό σημαίνει ότι ο διακομιστής θα διαθέτει μια RESTful διαδικτυακή υπηρεσία που παρέχει την απαιτούμενη λειτουργικότητα στον πελάτη. Ο πελάτης στέλνει ένα αίτημα στην διαδικτυακή υπηρεσία του διακομιστή. Ο διακομιστής στη συνέχεια είτε απορρίπτει το αίτημα είτε συμμορφώνεται και παρέχει μια επαρκή απάντηση στον πελάτη.
- Ανιθαγενείς
Η έννοια του "αναστάτη" σημαίνει ότι εναπόκειται στον πελάτη να διασφαλίσει ότι όλες οι απαιτούμενες πληροφορίες παρέχονται στον διακομιστή. Αυτό είναι απαραίτητο ώστε ο διακομιστής να μπορεί να επεξεργαστεί την απάντηση κατάλληλα. Ο διακομιστής δεν πρέπει να διατηρεί κανενός είδους πληροφορίες μεταξύ των αιτημάτων από τον πελάτη. Πρόκειται για μια πολύ απλή, ανεξάρτητη ακολουθία ερωτήσεων-απαντήσεων. Ο πελάτης υποβάλλει μια ερώτηση και ο διακομιστής την απαντά κατάλληλα. Όταν ο πελάτης υποβάλλει μια άλλη ερώτηση, ο διακομιστής δεν θα θυμάται το προηγούμενο σενάριο ερωτήσεων-απαντήσεων και θα πρέπει να απαντήσει στη νέα ερώτηση ανεξάρτητα.
- κρύπτη
Η έννοια της προσωρινής μνήμης βοηθά στο πρόβλημα της έλλειψης κατάστασης που περιγράφεται στο προηγούμενο σημείο. Δεδομένου ότι κάθε αίτημα διακομιστή-πελάτη είναι ανεξάρτητο στη φύση του, μερικές φορές ο πελάτης μπορεί να ζητήσει ξανά από τον διακομιστή το ίδιο αίτημα, παρόλο που το έχει ήδη ζητήσει στο παρελθόν. Αυτό το αίτημα θα μεταβεί στον διακομιστή και ο διακομιστής θα δώσει μια απάντηση, η οποία αυξάνει την κίνηση στο δίκτυο. Η προσωρινή μνήμη είναι μια έννοια που εφαρμόζεται στον πελάτη για την αποθήκευση αιτημάτων που έχουν ήδη σταλεί στον διακομιστή. Έτσι, εάν το ίδιο αίτημα δοθεί από τον πελάτη, αντί να μεταβεί στον διακομιστή, θα μεταβεί στην προσωρινή μνήμη και θα λάβει τις απαιτούμενες πληροφορίες. Αυτό εξοικονομεί την ποσότητα κίνησης δικτύου από τον πελάτη στον διακομιστή.
- Πολυεπίπεδο σύστημα
Η ιδέα ενός συστήματος σε επίπεδα είναι ότι οποιοδήποτε πρόσθετο επίπεδο, όπως ένα επίπεδο middleware, μπορεί να εισαχθεί μεταξύ του πελάτη και του πραγματικού διακομιστή που φιλοξενεί την υπηρεσία web RESTFul. (Το επίπεδο middleware είναι το σημείο όπου δημιουργείται όλη η επιχειρηματική λογική. Αυτή μπορεί να είναι μια επιπλέον υπηρεσία με την οποία αλληλεπιδρά ο πελάτης πριν πραγματοποιήσει μια κλήση στην υπηρεσία web.) Αλλά η εισαγωγή αυτού του επιπέδου πρέπει να είναι διαφανής, ώστε να μην διαταράσσει την αλληλεπίδραση μεταξύ του πελάτη και του διακομιστή.
- Διεπαφή/Ομοιόμορφη Συναρμολόγησηtract
Αυτή είναι η βασική τεχνική για το πώς θα πρέπει να λειτουργούν οι υπηρεσίες web RESTful. Το RESTful λειτουργεί βασικά στο επίπεδο web HTTP και χρησιμοποιεί τα παρακάτω βασικά ρήματα για να λειτουργήσει με πόρους στον διακομιστή.
- POST – Για να δημιουργήσετε έναν πόρο στον διακομιστή.
- GET – Για να ανακτήσετε έναν πόρο από τον διακομιστή.
- PUT – Για να αλλάξετε την κατάσταση ενός πόρου ή να τον ενημερώσετε.
- ΔΙΑΓΡΑΦΗ – Για να καταργήσετε ή να διαγράψετε έναν πόρο από τον διακομιστή.
REST vs SOAP: Βασικές διαφορές
Οι προγραμματιστές συχνά ζυγίζουν το REST έναντι του SOAP κατά το σχεδιασμό μιας διαδικτυακής υπηρεσίας. Και οι δύο επιτρέπουν την επικοινωνία κατανεμημένων εφαρμογών, αλλά διαφέρουν έντονα στη φιλοσοφία. Το REST είναι ένα αρχιτεκτονικό στυλ που χρησιμοποιεί απλά ρήματα HTTP και ελαφριές μορφές όπως το JSON, ενώ SOAP είναι ένα αυστηρό πρωτόκολλο που βασίζεται σε φακέλους XML και σε μια επίσημη συμφωνία.tracτ. Ο παρακάτω πίνακας συνοψίζει τις σημαντικότερες διακρίσεις.
| Άποψη | ΠΕΡΙΦΕΡΕΙΑ | SOAP |
|---|---|---|
| Χαρακτηριστικά | Archiτεχνοτροπικό στυλ | Αυστηρό πρωτόκολλο |
| Μορφή δεδομένων | JSON, XML, απλό κείμενο, HTML | Μόνο XML |
| Μεταφορά | Μόνο HTTP | HTTP, SMTP, TCP και άλλα |
| Κατάσταση | Ανιθαγενείς | Άπατρις ή με κρατική υπόσταση |
| 💪 Βελτίωση της απόδοσης στην άσκηση | Ταχύτερο και ελαφρύτερο | Βαρύτερο λόγω επιβάρυνσης XML |
| καλυτερα for | API για κινητά, ιστοσελίδων και δημόσιας χρήσης | Εταιρικές εφαρμογές που χρειάζονται αυστηρή ασφάλεια |
Στην πράξη, το REST είναι η προεπιλεγμένη επιλογή για δημόσια API ιστού και κινητών, επειδή είναι ταχύτερο και πιο εύκολο στην κατανάλωση, ενώ το SOAP παραμένει χρήσιμο για εταιρικά συστήματα που απαιτούν ενσωματωμένη ασφάλεια και επίσημη προστασία.tracts.
Δημιουργήστε την πρώτη σας υπηρεσία Web Restful στο ASP.NET
Τώρα, σε αυτό το σεμινάριο REST API, θα μάθουμε πώς να δημιουργήσουμε μια υπηρεσία web Restful σε ASP.NET.
Οι υπηρεσίες ιστού μπορούν να δημιουργηθούν σε μια ποικιλία γλωσσών και πολλά ολοκληρωμένα περιβάλλοντα ανάπτυξης μπορούν να χρησιμοποιηθούν για τη δημιουργία υπηρεσιών που βασίζονται σε REST.
Σε αυτό το παράδειγμα RESTful API, θα δημιουργήσουμε την εφαρμογή REST σε .NET χρησιμοποιώντας το Visual Studio. Θα έχουμε μια υπηρεσία web Restful που θα λειτουργεί με το παρακάτω σύνολο δεδομένων.
Το παρακάτω σύνολο δεδομένων αντιπροσωπεύει ένα παράδειγμα REST API μιας εταιρείας που παρουσιάζει τα εκπαιδευτικά βίντεο που έχει βασίσει στο Tutorialid.
| Εκμάθηση | Όνομα εκμάθησης |
|---|---|
| 0 | Array |
| 1 | ουρές |
| 2 | Στοίβες |
Στο παράδειγμα εκπαιδευτικού οδηγού REST API, θα εφαρμόσουμε τα παρακάτω ρήματα Restful.
- GET Tutorial – Όταν ένας πελάτης καλεί αυτό το Restful API, θα του δοθεί ολόκληρο το σύνολο των εκπαιδευτικών βοηθημάτων που είναι διαθέσιμα από την υπηρεσία web.
- GET Tutorial/Tutorialid – Όταν ένας πελάτης καλεί αυτό το Restful API, θα του δοθεί το όνομα του tutorial με βάση το Tutorialid που αποστέλλεται από τον πελάτη.
- POST Tutorial/Tutorialname – Όταν ένας πελάτης καλεί αυτό το Restful API, ο πελάτης θα υποβάλει ένα αίτημα για την εισαγωγή ενός Tutorialname. Η διαδικτυακή υπηρεσία θα προσθέσει στη συνέχεια το υποβληθέν όνομα tutorial στη συλλογή.
- DELETE Tutorial/Tutorialid – Όταν ένας υπολογιστής-πελάτης καλεί αυτό το Restful API, ο υπολογιστής-πελάτης θα υποβάλει ένα αίτημα για τη διαγραφή ενός Tutorialname με βάση το Tutorialid. Η διαδικτυακή υπηρεσία θα διαγράψει στη συνέχεια το υποβληθέν όνομα tutorial από τη συλλογή.
Ας ακολουθήσουμε τα παρακάτω βήματα για να δημιουργήσουμε την πρώτη μας διαδικτυακή υπηρεσία RESTful, η οποία εκτελεί την παραπάνω υλοποίηση.
Πώς να δημιουργήσετε την πρώτη σας ξεκούραστη υπηρεσία Web
Βήμα 1) Δημιουργήστε ένα νέο έργο.
Το πρώτο βήμα είναι να δημιουργήσετε ένα κενό Asp.Net εφαρμογή web. Από το Visual Studio 2013, κάντε κλικ στην επιλογή μενού Αρχείο->Νέο έργο.
Μόλις κάνετε κλικ στην επιλογή Νέο έργο, το Visual Studio θα σας δώσει ένα άλλο παράθυρο διαλόγου για να επιλέξετε τον τύπο του έργου και να εισαγάγετε τις απαραίτητες λεπτομέρειες. Αυτό εξηγείται στο επόμενο βήμα.
Βήμα 2) Εισαγάγετε το όνομα και την τοποθεσία του έργου.
- Βεβαιωθείτε ότι έχετε επιλέξει πρώτα το C# πρότυπο web της εφαρμογής web ASP.NET. Το έργο πρέπει να είναι αυτού του τύπου για να δημιουργηθεί ένα έργο υπηρεσιών web. Επιλέγοντας αυτήν την επιλογή, το Visual Studio θα εκτελέσει τα απαραίτητα βήματα για να προσθέσει τα απαιτούμενα αρχεία για οποιαδήποτε εφαρμογή web.
- Δώστε ένα όνομα για το έργο σας, το οποίο στην περίπτωσή μας είναι "Webservice.REST".
- Στη συνέχεια, βεβαιωθείτε ότι έχετε δώσει μια τοποθεσία όπου θα αποθηκευτούν τα αρχεία του έργου.
Μόλις τελειώσετε, θα δείτε το αρχείο έργου που δημιουργήθηκε στην εξερεύνηση λύσεων στο Visual Studio 2013.
Βήμα 3) Δημιουργήστε το αρχείο της υπηρεσίας web.
Το επόμενο βήμα είναι να δημιουργήσετε το αρχείο υπηρεσίας ιστού που θα περιέχει την υπηρεσία ιστού RESTful.
- Αρχικά, κάντε δεξί κλικ στο αρχείο του έργου όπως φαίνεται παρακάτω.
- Στο στάδιο αυτό,
- Κάντε δεξί κλικ στο αρχείο του έργου.
- Επιλέξτε την επιλογή «Προσθήκη->Νέο στοιχείο».
Στο παράθυρο διαλόγου που εμφανίζεται, πρέπει να εκτελέσετε τα εξής.
- Επιλέξτε την επιλογή WCF Service (Ajax-enabled). Η επιλογή ενός αρχείου αυτού του τύπου προκαλεί την προσθήκη βασικού κώδικα από το Visual Studio που σας βοηθά να δημιουργήσετε μια RESTful web service. Το WCF σημαίνει Windows Επικοινωνία FoundationΤο WCF είναι μια βιβλιοθήκη για εφαρμογές διαφόρων πλατφορμών (ή της ίδιας πλατφόρμας) για επικοινωνία μέσω διαφόρων πρωτοκόλλων όπως TCP, HTTP και HTTPS. Το Ajax είναι ασύγχρονο. JavaΓραφή και XML. Το AJAX επιτρέπει στις ιστοσελίδες να ενημερώνονται ασύγχρονα ανταλλάσσοντας μικρές ποσότητες δεδομένων με τον διακομιστή στα παρασκήνια.
- Στη συνέχεια, δώστε ένα όνομα για την υπηρεσία, η οποία στην περίπτωσή μας είναι TutorialService.
- Τέλος, κάντε κλικ στο κουμπί Προσθήκη για να προσθέσετε την υπηρεσία στη λύση.
Βήμα 4) Κάντε μια διαμόρφωση.
Το επόμενο βήμα είναι να κάνετε μια αλλαγή στη διαμόρφωση για να επιτρέψετε σε αυτό το έργο να λειτουργεί με υπηρεσίες ιστού RESTful. Αυτό απαιτεί μια αλλαγή στο αρχείο που ονομάζεται Web.configΑυτό το αρχείο εμφανίζεται στο ίδιο παράθυρο με το αρχείο έργου Webservice. Το αρχείο Web.config περιέχει όλες τις διαμορφώσεις που κάνουν την εφαρμογή web να λειτουργεί όπως θα έπρεπε. Η αλλαγή που γίνεται επιτρέπει στην εφαρμογή να στέλνει και να λαμβάνει δεδομένα ως μια καθαρά RESTful υπηρεσία web.
- Κάντε κλικ στο αρχείο Web.config για να ανοίξετε τον κώδικα.
- Βρείτε τη γραμμή .
- Αλλάξτε τη γραμμή σε .
Βήμα 5) Προσθέστε τον κωδικό μας για υλοποίηση.
Το επόμενο βήμα είναι να προσθέσουμε τον κώδικά μας για υλοποίηση. Όλος ο παρακάτω κώδικας πρέπει να γραφτεί στο αρχείο TutorialService.svc.
- Το πρώτο βήμα είναι η προσθήκη κώδικα για την αναπαράσταση των δεδομένων μας, ο οποίος θα χρησιμοποιηθεί στο πρόγραμμά μας. Έτσι, θα έχουμε μια λίστα μεταβλητών συμβολοσειρών με τιμές "Πίνακες", "Ουρές" και "Στοίβες". Αυτή θα αντιπροσωπεύει τα ονόματα των εκπαιδευτικών προγραμμάτων που είναι διαθέσιμα μέσω της υπηρεσίας φιλοξενίας ιστού μας.
namespace Webservice.REST { [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class TutorialService { private static List<String> lst = new List<String> (new String[] {"Arrays","Queues","Stacks"});
Βήμα 6) Καθορίστε τον κωδικό για τη μέθοδο GET.
Στη συνέχεια, θα ορίσουμε τον κώδικα για τη μέθοδο GET. Αυτός ο κώδικας θα βρίσκεται επίσης στο ίδιο αρχείο TutorialService.svc. Αυτός ο κώδικας θα εκτελείται κάθε φορά που καλούμε την υπηρεσία από το πρόγραμμα περιήγησής μας.
Η παρακάτω μέθοδος θα χρησιμοποιηθεί για την εκπλήρωση του παρακάτω σεναρίου.
- Εάν ένας χρήστης θέλει μια λίστα με όλα τα διαθέσιμα εκπαιδευτικά βοηθήματα, τότε ο παρακάτω κώδικας θα πρέπει να γραφτεί για να το πετύχει αυτό.
[WebGet(UriTemplate = "/Tutorial")] public String GetAllTutorial() { int count = lst.Count; String TutorialList = ""; for (int i = 0; i < count; i++) TutorialList = TutorialList + lst[i] + ","; return TutorialList; }
Code Εξήγηση:-
- Η πρώτη γραμμή κώδικα είναι η πιο σημαντική. Χρησιμοποιείται για να ορίσει τον τρόπο με τον οποίο μπορούμε να καλέσουμε αυτήν τη μέθοδο μέσω ενός URLΈτσι, εάν ο σύνδεσμος προς την υπηρεσία ιστού μας είναι http://localhost:52645/TutorialService.svc και προσθέτουμε το '/Tutorial' στο URL, όπως λέμε http://localhost:52645/TutorialService.svc/Tutorial, θα κληθεί ο παραπάνω κώδικας. Το χαρακτηριστικό 'WebGet' είναι μια παράμετρος που επιτρέπει σε αυτήν τη μέθοδο να είναι μια μέθοδος RESTful, ώστε να μπορεί να κληθεί μέσω του ρήματος GET.
- Αυτή η ενότητα κώδικα χρησιμοποιείται για να περάσει η λίστα με τις συμβολοσειρές στη μεταβλητή 'lst' και να επιστρέψει όλες στο πρόγραμμα κλήσης.
Βήμα 7) Επιστρέψτε την έξοδο.
Ο παρακάτω κώδικας διασφαλίζει ότι εάν πραγματοποιηθεί μια κλήση GET στην υπηρεσία Tutorial με αναγνωριστικό Tutorial, θα επιστρέψει το αντίστοιχο όνομα tutorial με βάση το αναγνωριστικό Tutorial.
[WebGet(UriTemplate = "/Tutorial/{Tutorialid}")] public String GetTutorialbyID(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); return lst[pid]; }
Code Εξήγηση:-
- Η πρώτη γραμμή κώδικα είναι η πιο σημαντική. Ορίζει πώς μπορούμε να καλέσουμε αυτήν τη μέθοδο μέσω ενός URLΈτσι, εάν ο σύνδεσμος προς την υπηρεσία ιστού μας είναι http://localhost:52645/TutorialService.svc και προσθέτουμε το '/Tutorial/{Tutorialid}' στο URL, θα μπορούσαμε να καλέσουμε την υπηρεσία ιστού ως http://localhost:52645/TutorialService.svc/Tutorial/1, για παράδειγμα. Η διαδικτυακή υπηρεσία θα επέστρεφε στη συνέχεια το όνομα του σεμιναρίου που είχε το αναγνωριστικό σεμιναρίου 1.
- Αυτό το τμήμα κώδικα χρησιμοποιείται για την επιστροφή του ονόματος του σεμιναρίου που περιέχει το αναγνωριστικό σεμιναρίου που μεταβιβάζεται στη μέθοδο web.
- Από προεπιλογή, αυτό που πρέπει να θυμάστε είναι ότι οτιδήποτε μεταβιβάζεται στο URL στο πρόγραμμα περιήγησης υπάρχει μια συμβολοσειρά.
- Αλλά πρέπει να θυμάστε ότι ο δείκτης στη λίστα μας πρέπει να είναι ακέραιος αριθμός, επομένως προσθέτουμε τον απαραίτητο κώδικα για να μετατρέψουμε πρώτα το Tutorialid σε ακέραιο αριθμό.
- Στη συνέχεια, το χρησιμοποιούμε για να έχουμε πρόσβαση στη θέση του δείκτη στη λίστα μας και να επιστρέψουμε την τιμή στο πρόγραμμα που το καλεί ανάλογα.
Βήμα 8) Γράψτε τον κώδικα για τη μέθοδο POST.
Το επόμενο βήμα είναι να γράψουμε τον κώδικα για τη μέθοδο POST. Αυτή η μέθοδος θα καλείται κάθε φορά που θέλουμε να προσθέσουμε μια τιμή συμβολοσειράς στη λίστα των εκπαιδευτικών μας βοηθημάτων μέσω της μεθόδου POST. Για παράδειγμα, αν θέλετε να προσθέσετε το όνομα του εκπαιδευτικού βοηθήματος "Δοκιμές Λογισμικού", τότε θα χρειαστεί να χρησιμοποιήσετε τη μέθοδο POST.
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/Tutorial/{str}")] public void AddTutorial(String str) { lst.Add(str); }
Code Εξήγηση:-
- Η πρώτη γραμμή είναι το χαρακτηριστικό 'WebInvoke', το οποίο έχει προσαρτηθεί στη μέθοδό μας. Αυτό επιτρέπει την κλήση της μεθόδου μέσω της κλήσης POST. Τα χαρακτηριστικά RequestFormat και ResponseFormat πρέπει να αναφέρονται ως JSON, καθώς κατά την ανάρτηση τιμών σε μια υπηρεσία web RESTFul, οι τιμές πρέπει να έχουν αυτήν τη μορφή.
- Η δεύτερη γραμμή κώδικα χρησιμοποιείται για την προσθήκη της τιμής συμβολοσειράς που διαβιβάζεται μέσω της κλήσης POST στην υπάρχουσα λίστα συμβολοσειρών οδηγού.
Βήμα 9) Προσθέστε μια μέθοδο για τον χειρισμό της λειτουργίας DELETE.
Τέλος, θα προσθέσουμε τη μέθοδό μας για να χειριστούμε τη λειτουργία DELETE. Αυτή η μέθοδος θα καλείται κάθε φορά που θέλουμε να διαγράψουμε μια υπάρχουσα τιμή συμβολοσειράς από τη λίστα των εκπαιδευτικών μας μέσω της μεθόδου DELETE.
[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json, UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)] public void DeleteTutorial(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); lst.RemoveAt(pid); }
Code Εξήγηση:-
- Η πρώτη γραμμή είναι το χαρακτηριστικό 'WebInvoke', το οποίο έχει προσαρτηθεί στη μέθοδό μας. Αυτό επιτρέπει την κλήση της μεθόδου μέσω της κλήσης DELETE. Τα χαρακτηριστικά RequestFormat και ResponseFormat πρέπει να αναφέρονται ως JSON, καθώς οι τιμές πρέπει να είναι σε αυτήν τη μορφή. Σημειώστε ότι η παράμετρος Method έχει οριστεί σε "DELETE". Αυτό σημαίνει ότι κάθε φορά που εκτελούμε το ρήμα DELETE, θα καλείται αυτή η μέθοδος.
- Η δεύτερη γραμμή κώδικα χρησιμοποιείται για τη λήψη του Tutorialid που στάλθηκε μέσω της κλήσης DELETE και στη συνέχεια για τη διαγραφή αυτού του αναγνωριστικού από τη λίστα μας. (Ο Int32 Η συνάρτηση στον κώδικα χρησιμοποιείται για τη μετατροπή του Tutorial id από μια μεταβλητή συμβολοσειράς σε ακέραιο αριθμό.)
Εκτέλεση της πρώτης σας υπηρεσίας Web Restful
Τώρα που έχουμε δημιουργήσει ολόκληρη την υπηρεσία web στην παραπάνω ενότητα, ας δούμε πώς μπορούμε να εκτελέσουμε την υπηρεσία Tutorial ώστε να μπορεί να κληθεί από οποιονδήποτε πελάτη.
Για να εκτελέσετε την υπηρεσία web, ακολουθήστε τα παρακάτω βήματα.
Βήμα 1) Κάντε δεξί κλικ στο αρχείο έργου – Webservice.REST.
Βήμα 2) Επιλέξτε την επιλογή μενού «Ορισμός ως Έργο Εκκίνησης». Αυτό θα διασφαλίσει ότι αυτό το έργο θα εκτελεστεί όταν το Visual Studio εκτελέσει ολόκληρη τη λύση.
Βήμα 3) Το επόμενο βήμα είναι η εκτέλεση του ίδιου του έργου. Ανάλογα με το προεπιλεγμένο πρόγραμμα περιήγησης που είναι εγκατεστημένο στο σύστημα, το κατάλληλο όνομα προγράμματος περιήγησης θα εμφανιστεί δίπλα στο κουμπί εκτέλεσης στο Visual Studio. Στην περίπτωσή μας, έχουμε Google Chrome εμφανίζεται. Απλώς κάντε κλικ σε αυτό το κουμπί.
Παραγωγή:-
Όταν εκτελεστεί το έργο, μπορείτε να μεταβείτε στην ενότητα TutorialService.svc/Tutorial και θα λάβετε το παρακάτω αποτέλεσμα.
Στην παραπάνω έξοδο,
- Μπορείτε να δείτε ότι το πρόγραμμα περιήγησης καλεί το ρήμα 'GET' και εκτελεί τη μέθοδο 'GetAllTutorial' στην υπηρεσία web. Αυτή η ενότητα χρησιμοποιείται για την εμφάνιση όλων των εκπαιδευτικών προγραμμάτων που εκτίθενται από την υπηρεσία web.
Δοκιμάζοντας την πρώτη σας υπηρεσία Web Restful
Στην παραπάνω ενότητα, έχουμε ήδη δει πώς να χρησιμοποιούμε το πρόγραμμα περιήγησης για να εκτελέσουμε το ρήμα 'GET' και να καλέσουμε το 'GetAllTutorial'.
- Ας χρησιμοποιήσουμε τώρα το πρόγραμμα περιήγησης για να εκτελέσουμε το ακόλουθο σενάριο περίπτωσης χρήσης.
GET Tutorial/Tutorialid – Όταν ένας πελάτης καλεί αυτό το Restful API, θα του δοθεί το όνομα του tutorial με βάση το Tutorialid που στάλθηκε από τον πελάτη.
Στο πρόγραμμα περιήγησής σας, προσθέστε τη συμβολοσειρά /1 μετά τη λέξη Tutorial στο URLΑν πατήσετε το κουμπί enter, θα λάβετε το παρακάτω αποτέλεσμα.
Τώρα θα δείτε την έξοδο της "Ουρές", η οποία αντιστοιχεί στον αριθμό 1 στη λίστα συμβολοσειρών οδηγιών. Αυτό σημαίνει ότι η μέθοδος 'GetTutorialbyID' καλείται τώρα από την υπηρεσία web μας. Δείχνει επίσης ότι η τιμή 1 διαβιβάζεται με επιτυχία μέσω του προγράμματος περιήγησης στην υπηρεσία web μας και στη μέθοδό μας και γι' αυτό λαμβάνουμε τη σωστή αντίστοιχη τιμή "Ουρές" στο πρόγραμμα περιήγησης.
- Στη συνέχεια, ας χρησιμοποιήσουμε την υπηρεσία ιστού μας εκτελώντας το παρακάτω σενάριο. Για αυτό, πρέπει να εγκαταστήσετε το εργαλείο που ονομάζεται Fiddler, το οποίο είναι ένα δωρεάν εργαλείο προς λήψη.
POST Tutorial/Tutorialname – Όταν ένας υπολογιστής-πελάτης καλεί αυτό το Restful API, ο υπολογιστής-πελάτης θα υποβάλει ένα αίτημα για την εισαγωγή ενός Tutorialname. Η διαδικτυακή υπηρεσία θα προσθέσει στη συνέχεια το υποβληθέν όνομα tutorial στη συλλογή.
Εκτελέστε το Fiddler εργαλείο και εκτελέστε τα παρακάτω βήματα.
- Μεταβείτε στην ενότητα σύνθεσης. Αυτή χρησιμοποιείται για τη δημιουργία αιτημάτων που μπορούν να υποβληθούν σε οποιαδήποτε διαδικτυακή εφαρμογή.
- Βεβαιωθείτε ότι ο τύπος αιτήματος είναι "POST" και ο σωστός URL χτυπιέται, κάτι που στην περίπτωσή μας θα έπρεπε να είναι http://localhost:52645/TutorialService.svc/Tutorial.
- Βεβαιωθείτε ότι ο Τύπος Περιεχομένου έχει επισημανθεί ως application/json. Να θυμάστε ότι η μέθοδος αιτήματος POST στην υπηρεσία ιστού μας δέχεται μόνο δεδομένα τύπου JSON, επομένως πρέπει να διασφαλίσουμε ότι αυτό καθορίζεται όταν στέλνουμε ένα αίτημα στην εφαρμογή μας.
- Τέλος, πρέπει να εισαγάγουμε τα δεδομένα μας. Να θυμάστε ότι η μέθοδός μας για το POST δέχεται μια παράμετρο που ονομάζεται 'str'. Εδώ λοιπόν καθορίζουμε ότι θέλουμε να προσθέσουμε μια τιμή που ονομάζεται "Δέντρα" στη συλλογή μας από ονόματα εκπαιδευτικών προγραμμάτων και να διασφαλίσουμε ότι έχει επισημανθεί με το όνομα της μεταβλητής 'str'.
Τέλος, απλώς κάντε κλικ στο κουμπί Εκτέλεση στο FiddlerΑυτό θα στείλει ένα αίτημα στην υπηρεσία web για να ΔΗΜΟΣΙΕΥΣΕΙ τα δεδομένα "Δέντρα" στην υπηρεσία web μας.
Τώρα, όταν περιηγηθούμε στο Tutorial URL Για να εμφανιστούν όλες οι συμβολοσειρές στη λίστα εκπαιδευτικών μας προγραμμάτων, θα δείτε ότι υπάρχει και η τιμή "Δέντρα". Αυτό δείχνει ότι το αίτημα POST προς την υπηρεσία web εκτελέστηκε με επιτυχία και ότι προστέθηκε με επιτυχία στη λίστα εκπαιδευτικών μας προγραμμάτων.
- Στη συνέχεια, ας χρησιμοποιήσουμε την υπηρεσία ιστού μας εκτελώντας το παρακάτω σενάριο. Για αυτό, πρέπει επίσης να χρησιμοποιήσουμε το Fiddler εργαλείο.
ΔΙΑΓΡΑΦΗ Tutorial/Tutorialid – Όταν ένας υπολογιστής-πελάτης καλεί αυτό το Restful API, ο υπολογιστής-πελάτης θα υποβάλει ένα αίτημα για τη διαγραφή ενός Tutorialname με βάση το Tutorialid. Η διαδικτυακή υπηρεσία θα διαγράψει στη συνέχεια το υποβληθέν όνομα tutorial από τη συλλογή.
Εκτελέστε το Fiddler εργαλείο και εκτελέστε τα παρακάτω βήματα.
- Μεταβείτε στην ενότητα σύνθεσης. Αυτή χρησιμοποιείται για τη δημιουργία αιτημάτων που μπορούν να υποβληθούν σε οποιαδήποτε διαδικτυακή εφαρμογή.
- Βεβαιωθείτε ότι ο τύπος αιτήματος είναι «ΔΙΑΓΡΑΦΗ» και ο σωστός URL χτυπιέται, κάτι που στην περίπτωσή μας θα έπρεπε να είναι http://localhost:52645/TutorialService.svc/TutorialΒεβαιωθείτε ότι το αναγνωριστικό που χρησιμοποιείται για τη διαγραφή μιας συμβολοσειράς στη λίστα αποστέλλεται μέσω του URL ως παράμετρος. Στο παράδειγμα REST, στέλνουμε 1, επομένως αυτό θα διαγράψει το 2nd στοιχείο στη συλλογή μας, το οποίο είναι οι «Ουρές».
Τέλος, απλώς κάντε κλικ στο κουμπί Εκτέλεση στο FiddlerΑυτό θα στείλει ένα αίτημα στην υπηρεσία web για ΔΙΑΓΡΑΦΗ των δεδομένων "Ουρές" από την υπηρεσία web μας.
Τώρα, όταν περιηγηθούμε στο Tutorial URL Για να εμφανίσετε όλες τις συμβολοσειρές στη λίστα εκπαιδευτικών μας προγραμμάτων, θα παρατηρήσετε ότι η τιμή "Ουρές" δεν υπάρχει πλέον.
Αυτό δείχνει ότι το αίτημα DELETE προς την υπηρεσία web εκτελέστηκε με επιτυχία. Το στοιχείο με αριθμό ευρετηρίου 1 στη λίστα συμβολοσειρών του εκπαιδευτικού μας προγράμματος διαγράφηκε με επιτυχία.
RESTful API καλυτερα Practices
Η δημιουργία ενός REST API που λειτουργεί είναι μόνο το πρώτο βήμα. Η δημιουργία ενός που κλιμακώνεται και παραμένει συντηρήσιμο απαιτεί πειθαρχία. Οι παρακάτω πρακτικές βοηθούν στη διατήρηση των τελικών σημείων σας προβλέψιμων, ασφαλών και εύκολων στην χρήση από άλλους προγραμματιστές και πράκτορες τεχνητής νοημοσύνης.
- Χρησιμοποιήστε ουσιαστικά, όχι ρήματα, στο URLs. Τελικά σημεία όπως /εργαζόμενοι/1 είναι πιο καθαρά από /getEmployee?id=1, επειδή το ρήμα HTTP περιγράφει ήδη την ενέργεια.
- Επιστρέψτε κωδικούς κατάστασης με νόημα. Στείλτε 200 για επιτυχία, 201 για έναν δημιουργημένο πόρο, 400 για ένα λανθασμένο αίτημα, 401 για μη εξουσιοδοτημένη πρόσβαση, 404 για έναν πόρο που λείπει και 500 για σφάλματα διακομιστή.
- Εκδώστε το API σας. Προσθήκη ενός τμήματος έκδοσης όπως /έκδοση 1/ στη διαδρομή σάς επιτρέπει να εξελίξετε την υπηρεσία χωρίς να διαταράξετε τους υπάρχοντες πελάτες.
- Ασφαλίστε κάθε τελικό σημείο. Χρησιμοποιήστε HTTPS, μαζί με κλειδιά API ή διακριτικά OAuth 2.0, και επικυρώστε όλα τα εισερχόμενα δεδομένα εισόδου.
- Υποστήριξη σελιδοποίησης και φιλτραρίσματος. Η επιστροφή μεγάλων συλλογών σε σελίδες διατηρεί τις απαντήσεις γρήγορες και μειώνει το φόρτο εργασίας του διακομιστή.
Η τήρηση αυτών των συμβάσεων καθιστά την ενσωμάτωση της διαδικτυακής υπηρεσίας RESTful διαισθητική, είτε ο καταναλωτής είναι μια εφαρμογή για κινητά, ένα σύστημα συνεργατών είτε μια αυτοματοποιημένη ροή εργασίας τεχνητής νοημοσύνης.




























