Εκπαιδευτικό πρόγραμμα RESTful Web Services με παράδειγμα REST API

Πίνακας περιεχομένων:

Anonim

Τι είναι οι υπηρεσίες ξεκούρασης στο Web;

Το Restful Web Services είναι μια ελαφριά, διατηρήσιμη και επεκτάσιμη υπηρεσία που βασίζεται στην αρχιτεκτονική REST. Ξεκούραστη υπηρεσία Ιστού, εκθέστε το API από την εφαρμογή σας με ασφαλή, ομοιόμορφο, απάτριδο τρόπο στον πελάτη που καλεί. Ο πελάτης κλήσης μπορεί να εκτελέσει προκαθορισμένες λειτουργίες χρησιμοποιώντας την υπηρεσία Restful. Το υποκείμενο πρωτόκολλο για το REST είναι HTTP. Το REST σημαίνει Μεταφραστική Κατάσταση Μεταφοράς.

Σε αυτό το σεμινάριο REST API, θα μάθετε-

  • ΒΑΣΙΚΑ Βασικά Στοιχεία
  • Αναπαυτικές μέθοδοι
  • Γιατί ξεκούραστοι
  • Ξεκούραστη αρχιτεκτονική
  • Αρχές και περιορισμοί RestFul
  • Δημιουργήστε την πρώτη σας υπηρεσία ξεκούρασης στο ASP.NET
  • Εκτελεί την πρώτη σας υπηρεσία Web Restful
  • Δοκιμή της πρώτης υπηρεσίας Web Restful

ΒΑΣΙΚΑ Βασικά Στοιχεία

Οι υπηρεσίες Web REST έχουν προχωρήσει πολύ από την ίδρυσή της. Το 2002, η κοινοπραξία Web κυκλοφόρησε τον ορισμό των υπηρεσιών Ιστού WSDL και SOAP. Αυτό αποτέλεσε το πρότυπο του τρόπου με τον οποίο εφαρμόζονται οι διαδικτυακές υπηρεσίες.

Το 2004, η διαδικτυακή κοινοπραξία κυκλοφόρησε επίσης τον ορισμό ενός πρόσθετου προτύπου που ονομάζεται RESTful. Τα τελευταία δύο χρόνια, αυτό το πρότυπο έχει γίνει αρκετά δημοφιλές. Και χρησιμοποιείται από πολλούς από τους δημοφιλείς ιστότοπους σε όλο τον κόσμο που περιλαμβάνουν Facebook και Twitter.

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

Τα βασικά στοιχεία μιας εφαρμογής RESTful είναι τα εξής:

  1. Πόροι - Το πρώτο βασικό στοιχείο είναι ο ίδιος ο πόρος. Ας υποθέσουμε ότι μια εφαρμογή ιστού σε έναν διακομιστή έχει αρχεία πολλών υπαλλήλων. Ας υποθέσουμε ότι η διεύθυνση URL της εφαρμογής ιστού είναι http://demo.guru99.com . Τώρα, για να αποκτήσετε πρόσβαση σε έναν πόρο εγγραφής υπαλλήλου μέσω υπηρεσιών REST, μπορεί κανείς να εκδώσει την εντολή http://demo.guru99.com/employee/1 - Αυτή η εντολή λέει στον διακομιστή ιστού να παρέχει τις λεπτομέρειες του υπαλλήλου του οποίου ο αριθμός υπαλλήλου 1.

  2. Αίτημα ρήματα - Αυτά περιγράφουν τι θέλετε να κάνετε με τον πόρο. Ένα πρόγραμμα περιήγησης εκδίδει ένα ρήμα GET για να καθοδηγήσει το τελικό σημείο που θέλει να λάβει δεδομένα. Ωστόσο, υπάρχουν πολλά άλλα ρήματα διαθέσιμα, όπως πράγματα όπως POST, PUT και DELETE. Έτσι, στην περίπτωση του παραδείγματος http://demo.guru99.com/employee/1 , το πρόγραμμα περιήγησης ιστού εκδίδει πραγματικά ένα ρήμα GET επειδή θέλει να πάρει τις λεπτομέρειες του αρχείου εργαζομένων.

  3. Request Headers - Πρόκειται για πρόσθετες οδηγίες που αποστέλλονται με το αίτημα. Αυτά μπορεί να καθορίζουν τον τύπο απόκρισης που απαιτείται ή τις λεπτομέρειες εξουσιοδότησης.

  4. Body Request - Τα δεδομένα αποστέλλονται με το αίτημα. Τα δεδομένα αποστέλλονται συνήθως στο αίτημα όταν υποβάλλεται αίτημα POST στις υπηρεσίες ιστού REST. Σε μια κλήση POST, ο πελάτης λέει στην πραγματικότητα τις υπηρεσίες ιστού REST ότι θέλει να προσθέσει έναν πόρο στο διακομιστή. Ως εκ τούτου, το σώμα αιτήσεων θα έχει τις λεπτομέρειες του πόρου που απαιτείται να προστεθεί στο διακομιστή.

  5. Σώμα απόκρισης - Αυτό είναι το κύριο σώμα της απόκρισης. Έτσι, στο παράδειγμά μας RESTful API, εάν θέλαμε να υποβάλουμε ερώτημα στον διακομιστή ιστού μέσω του αιτήματος http://demo.guru99.com/employee/1 , ο διακομιστής ιστού ενδέχεται να επιστρέψει ένα έγγραφο XML με όλες τις λεπτομέρειες του υπαλλήλου στην απόκριση Σώμα.

  6. Κωδικοί κατάστασης απόκρισης - Αυτοί οι κωδικοί είναι οι γενικοί κωδικοί που επιστρέφονται μαζί με την απόκριση από τον διακομιστή ιστού. Ένα παράδειγμα είναι ο κωδικός 200 που επιστρέφεται κανονικά εάν δεν υπάρχει σφάλμα κατά την επιστροφή μιας απόκρισης στον πελάτη.

Αναπαυτικές μέθοδοι

Το παρακάτω διάγραμμα δείχνει κυρίως όλα τα ρήματα (POST, GET, PUT και DELETE) και ένα παράδειγμα REST API για το τι θα σήμαινε.

Ας υποθέσουμε ότι έχουμε μια υπηρεσία RESTful web που ορίζεται στην τοποθεσία. http://demo.guru99.com/employee . Όταν ο πελάτης υποβάλλει οποιοδήποτε αίτημα σε αυτήν την υπηρεσία ιστού, μπορεί να καθορίσει οποιοδήποτε από τα κανονικά ρήματα HTTP των GET, POST, DELETE και PUT. Παρακάτω είναι τι θα συνέβαινε εάν τα αντίστοιχα ρήματα εστάλησαν από τον πελάτη.

  1. POST - Αυτό θα χρησιμοποιηθεί για τη δημιουργία ενός νέου υπαλλήλου χρησιμοποιώντας την υπηρεσία διαδικτύου RESTful
  2. GET - Αυτό θα χρησιμοποιηθεί για τη λήψη μιας λίστας όλων των υπαλλήλων που χρησιμοποιούν την υπηρεσία διαδικτύου RESTful
  3. PUT - Αυτό θα χρησιμοποιηθεί για την ενημέρωση όλων των υπαλλήλων που χρησιμοποιούν την υπηρεσία ιστού RESTful
  4. ΔΙΑΓΡΑΦΗ - Αυτό θα χρησιμοποιηθεί για τη διαγραφή όλων των υπαλλήλων που χρησιμοποιούν τις υπηρεσίες RESTful

Ας ρίξουμε μια ματιά από την οπτική γωνία ενός μόνο δίσκου. Ας υποθέσουμε ότι υπήρχε ρεκόρ υπαλλήλου με αριθμό υπαλλήλου 1.

Οι ακόλουθες ενέργειες θα έχουν τις αντίστοιχες σημασίες τους.

  1. POST - Αυτό δεν θα μπορούσε να εφαρμοστεί, καθώς συλλέγουμε δεδομένα του υπαλλήλου 1 που έχουν ήδη δημιουργηθεί.
  2. GET - Αυτό θα χρησιμοποιηθεί για να λάβετε τις λεπτομέρειες του υπαλλήλου με υπάλληλο αρ. 1 χρησιμοποιώντας την υπηρεσία ιστού RESTful
  3. PUT - Αυτό θα χρησιμοποιηθεί για την ενημέρωση των στοιχείων του υπαλλήλου με υπάλληλο αρ. 1 χρησιμοποιώντας την υπηρεσία διαδικτύου RESTful
  4. ΔΙΑΓΡΑΦΗ - Χρησιμοποιείται για τη διαγραφή των στοιχείων του υπαλλήλου με υπάλληλο αρ. 1

Γιατί ξεκούραστοι

Ηρεμία κυρίως έγινε δημοφιλής για τους ακόλουθους λόγους:

  1. Ετερογενείς γλώσσες και περιβάλλοντα - Αυτός είναι ένας από τους θεμελιώδεις λόγους που είναι ο ίδιος όπως έχουμε δει και για το SOAP.
  • Επιτρέπει σε διαδικτυακές εφαρμογές που βασίζονται σε διάφορες γλώσσες προγραμματισμού να επικοινωνούν μεταξύ τους
  • Με τη βοήθεια των υπηρεσιών Restful, αυτές οι διαδικτυακές εφαρμογές μπορούν να βρίσκονται σε διαφορετικά περιβάλλοντα, μερικά θα μπορούσαν να είναι σε Windows και άλλα θα μπορούσαν να είναι σε Linux.

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

Η παρακάτω εικόνα δίνει ένα παράδειγμα μιας εφαρμογής ιστού που έχει την απαίτηση να μιλήσει με άλλες εφαρμογές όπως το Facebook, το Twitter και το Google.

Τώρα, εάν μια εφαρμογή πελάτη έπρεπε να συνεργαστεί με ιστότοπους όπως το Facebook, το Twitter κ.λπ., πιθανότατα θα πρέπει να γνωρίζουν ποια είναι η γλώσσα στο οποίο βασίζονται τα Facebook, το Google και το Twitter, καθώς και σε ποια πλατφόρμα είναι βασισμένες.

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

Το Facebook, το Twitter και η Google εκθέτουν τη λειτουργικότητά τους με τη μορφή υπηρεσιών ξεκούρασης Ιστού. Αυτό επιτρέπει σε οποιαδήποτε εφαρμογή πελάτη να καλεί αυτές τις υπηρεσίες Ιστού μέσω REST.

  1. Η εκδήλωση των συσκευών - Σήμερα, όλα πρέπει να λειτουργούν σε φορητές συσκευές, είτε πρόκειται για φορητή συσκευή, φορητούς υπολογιστές ή ακόμα και συστήματα αυτοκινήτων.

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

  2. Τέλος είναι η εκδήλωση του Cloud - Όλα μετακινούνται στο cloud. Οι εφαρμογές μετακινούνται αργά σε συστήματα που βασίζονται σε σύννεφα, όπως στο Azure ή στο Amazon. Το Azure και το Amazon παρέχουν πολλά API βασισμένα στην αρχιτεκτονική Restful. Ως εκ τούτου, οι εφαρμογές πρέπει τώρα να αναπτυχθούν με τέτοιο τρόπο ώστε να είναι συμβατές με το Cloud. Επομένως, δεδομένου ότι όλες οι αρχιτεκτονικές που βασίζονται σε σύννεφο λειτουργούν βάσει της αρχής REST, είναι πιο λογικό να προγραμματίζονται οι υπηρεσίες Ιστού στην αρχιτεκτονική που βασίζεται στις υπηρεσίες REST για να κάνουν την καλύτερη χρήση των υπηρεσιών που βασίζονται στο Cloud.

Ξεκούραστη αρχιτεκτονική

Μια εφαρμογή ή αρχιτεκτονική που θεωρείται στυλ RESTful ή REST έχει τα ακόλουθα χαρακτηριστικά

  1. Η κατάσταση και η λειτουργικότητα χωρίζονται σε κατανεμημένους πόρους - Αυτό σημαίνει ότι κάθε πόρος πρέπει να είναι προσβάσιμος μέσω των κανονικών εντολών HTTP των GET, POST, PUT ή DELETE. Επομένως, εάν κάποιος ήθελε να λάβει ένα αρχείο από έναν διακομιστή, θα πρέπει να μπορεί να εκδώσει το αίτημα GET και να λάβει το αρχείο. Εάν θέλουν να τοποθετήσουν ένα αρχείο στον διακομιστή, θα πρέπει να μπορούν να εκδώσουν το αίτημα POST ή PUT. Και τέλος, εάν ήθελαν να διαγράψουν ένα αρχείο από το διακομιστή, τότε εκδίδουν το αίτημα DELETE.
  2. Η αρχιτεκτονική είναι πελάτης / διακομιστής, ανιθαγενής, πολυεπίπεδης και υποστηρίζει προσωρινή αποθήκευση -
  • Ο διακομιστής-πελάτης είναι η τυπική αρχιτεκτονική όπου ο διακομιστής μπορεί να είναι ο διακομιστής ιστού που φιλοξενεί την εφαρμογή και ο πελάτης μπορεί να είναι τόσο απλός όσο το πρόγραμμα περιήγησης ιστού.
  • Το Stateless σημαίνει ότι η κατάσταση της εφαρμογής δεν διατηρείται στο REST.

    Για παράδειγμα, εάν διαγράψετε έναν πόρο από έναν διακομιστή χρησιμοποιώντας την εντολή DELETE, δεν μπορείτε να περιμένετε ότι οι πληροφορίες διαγραφής θα μεταβιβαστούν στο επόμενο αίτημα.

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

Αρχές και περιορισμοί του RESTFul

Η αρχιτεκτονική REST βασίζεται σε μερικά χαρακτηριστικά που περιγράφονται παρακάτω. Οποιαδήποτε διαδικτυακή υπηρεσία RESTful πρέπει να συμμορφώνεται με τα παρακάτω χαρακτηριστικά για να ονομάζεται RESTful. Αυτά τα χαρακτηριστικά είναι επίσης γνωστά ως αρχές σχεδιασμού που πρέπει να ακολουθούνται όταν εργάζεστε με υπηρεσίες βασισμένες στο RESTful.

  1. RESTFul Client-Server

Αυτή είναι η πιο θεμελιώδης απαίτηση μιας αρχιτεκτονικής βασισμένη σε REST. Αυτό σημαίνει ότι ο διακομιστής θα έχει μια υπηρεσία RESTful web που θα παρέχει την απαιτούμενη λειτουργικότητα στον πελάτη. Ο πελάτης στέλνει ένα αίτημα στην υπηρεσία διαδικτύου του διακομιστή. Ο διακομιστής είτε θα απορρίψει το αίτημα είτε θα συμμορφωθεί και θα παρέχει επαρκή απάντηση στον πελάτη.

  1. Ανιθαγενείς

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

  1. Κρύπτη

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

  1. Πολυεπίπεδο σύστημα

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

  1. Διεπαφή / ομοιόμορφη σύμβαση

Αυτή είναι η υποκείμενη τεχνική του τρόπου λειτουργίας των υπηρεσιών ιστού RESTful. Το RESTful λειτουργεί βασικά στο επίπεδο ιστού HTTP και χρησιμοποιεί τα παρακάτω βασικά ρήματα για να εργαστεί με πόρους στο διακομιστή

  • POST - Για να δημιουργήσετε έναν πόρο στο διακομιστή
  • GET - Για να ανακτήσετε έναν πόρο από το διακομιστή
  • PUT - Για να αλλάξετε την κατάσταση ενός πόρου ή για να τον ενημερώσετε
  • ΔΙΑΓΡΑΦΗ - Για να αφαιρέσετε ή να διαγράψετε έναν πόρο από το διακομιστή

Δημιουργήστε την πρώτη σας υπηρεσία ξεκούρασης στο ASP.NET

Τώρα σε αυτό το σεμινάριο REST API, θα μάθουμε πώς να δημιουργούμε μια ξεκούραστη υπηρεσία ιστού στο ASP.NET:

Οι υπηρεσίες Ιστού μπορούν να δημιουργηθούν σε διάφορες γλώσσες. Πολλά ολοκληρωμένα περιβάλλοντα ανάπτυξης μπορούν να χρησιμοποιηθούν για τη δημιουργία υπηρεσιών που βασίζονται σε REST.

Σε αυτό το παράδειγμα RESTful API, πρόκειται να δημιουργήσουμε την εφαρμογή REST στο .Net χρησιμοποιώντας το Visual Studio. Στο παράδειγμά μας, για υπηρεσίες Web Restful θα μιμηθούμε το ακόλουθο παράδειγμα υπηρεσίας REST.

Θα έχουμε μια ξεκούραστη διαδικτυακή υπηρεσία που θα λειτουργεί στο παρακάτω σύνολο δεδομένων.

Το παρακάτω σύνολο δεδομένων αντιπροσωπεύει ένα παράδειγμα REST API της ύπαρξης μιας εταιρείας που εκθέτει τους οδηγούς που έχουν βασιστεί στο Tutorialid.

Εκπαιδευτικός Εκπαιδευτικό όνομα
0 Πίνακες
1 Ουρές
2 Στοίβες

Στο παράδειγμα εκμάθησης REST API, θα εφαρμόσουμε τα παρακάτω Restful Verbs.

  1. GET Tutorial - Όταν ένας πελάτης επικαλεστεί αυτό το Restful API, θα του δοθεί ολόκληρο το σύνολο των Tutorials που διατίθενται από την υπηρεσία web.
  2. GET Tutorial / Tutorialid - Όταν ένας πελάτης επικαλεστεί αυτό το Restful API, θα του δοθεί το όνομα Tutorialid βάσει του Tutorialid που έστειλε ο πελάτης.
  3. POST Tutorial / Tutorialname - Όταν ένας πελάτης επικαλείται αυτό το Restful API, ο πελάτης θα υποβάλει αίτημα για εισαγωγή ενός εκπαιδευτικού ονόματος. Στη συνέχεια, η υπηρεσία ιστού θα προσθέσει το υποβληθέν όνομα Tutorial στη συλλογή.
  4. ΔΙΑΓΡΑΦΗ Tutorial / Tutorialid- Όταν ένας πελάτης επικαλεστεί αυτό το Restful API, ο πελάτης θα υποβάλει αίτημα για διαγραφή ενός ονόματος Tutorialn που βασίζεται στο Tutorialid. Στη συνέχεια, η υπηρεσία Ιστού θα διαγράψει το υποβληθέν όνομα Εκμάθησης από τη συλλογή.

Ας ακολουθήσουμε τα παρακάτω βήματα σε αυτό το σεμινάριο RESTful API για να δημιουργήσουμε τις πρώτες υπηρεσίες ιστού RESTful, οι οποίες πραγματοποιούν την παραπάνω εφαρμογή.

Βήμα 1) Το πρώτο βήμα είναι να δημιουργήσετε μια κενή εφαρμογή Web Asp.Net. Από το Visual Studio 2013, κάντε κλικ στην επιλογή μενού Αρχείο-> Νέο έργο.

Μόλις κάνετε κλικ στην επιλογή Νέο έργο, το Visual Studio θα σας δώσει ένα άλλο παράθυρο διαλόγου για την επιλογή του τύπου του έργου και για να δώσει τις απαραίτητες λεπτομέρειες του έργου. Αυτό εξηγείται στο επόμενο βήμα αυτού του οδηγού RESTful API

Βήμα 2) Σε αυτό το βήμα,

  1. Βεβαιωθείτε ότι έχετε επιλέξει πρώτα το RESTful web services C # web template της εφαρμογής ASP.NET Web. Το έργο πρέπει να είναι αυτού του τύπου για τη δημιουργία έργου διαδικτυακών υπηρεσιών. Επιλέγοντας αυτές τις επιλογές, το Visual Studio θα πραγματοποιήσει τα απαραίτητα βήματα για να προσθέσει τα απαιτούμενα αρχεία που απαιτούνται από οποιαδήποτε διαδικτυακή εφαρμογή.
  2. Δώστε ένα όνομα για το έργο σας το οποίο στην περίπτωσή μας έχει δοθεί ως "Webservice.REST".
  3. Στη συνέχεια, βεβαιωθείτε ότι έχετε δώσει μια τοποθεσία, όπου θα αποθηκευτούν τα αρχεία του έργου.

Μόλις τελειώσετε, θα δείτε το αρχείο έργου που δημιουργήθηκε στον εξερευνητή λύσεων στο Visual Studio 2013.

Βήμα 3) Το επόμενο βήμα είναι να δημιουργήσετε το αρχείο υπηρεσίας διαδικτύου το οποίο θα έχει την υπηρεσία RESTful web

  1. Πρώτο δεξί κλικ στο αρχείο έργου όπως φαίνεται παρακάτω
  1. Σε αυτό το βήμα,
    1. Κάντε δεξί κλικ στο αρχείο έργου
    2. Ορίστε την επιλογή "Προσθήκη-> νέο στοιχείο."

Στο παράθυρο διαλόγου που εμφανίζεται, πρέπει να εκτελέσετε τα ακόλουθα

  1. Διαλέξτε την επιλογή της υπηρεσίας WCF (Ajax-enabled) - Επιλέξτε ένα αρχείο αυτού του τύπου, προκαλεί στο Visual studio να προσθέσει κάποιο βασικό κώδικα που βοηθάει τη δημιουργία μιας υπηρεσίας RESTful web. Το WCF σημαίνει Windows Communication Foundation. Το WCF είναι μια βιβλιοθήκη για εφαρμογές διαφόρων πλατφορμών ή της ίδιας πλατφόρμας για επικοινωνία μέσω των διαφόρων πρωτοκόλλων όπως TCP, HTTP, HTTPS. Το Ajax βασικά είναι ασύγχρονη JavaScript και XML. Το AJAX επιτρέπει στις ιστοσελίδες να ενημερώνονται ασύγχρονα, ανταλλάσσοντας μικρές ποσότητες δεδομένων με τον διακομιστή πίσω από τα παρασκήνια.
  2. Στη συνέχεια, δώστε ένα όνομα για την υπηρεσία που είναι TutorialService στην περίπτωσή μας.
  3. Τέλος, κάντε κλικ στο κουμπί Προσθήκη για να προσθέσετε την υπηρεσία στη λύση.

Βήμα 4) Το επόμενο βήμα είναι στην πραγματικότητα να πραγματοποιήσετε μια αλλαγή διαμόρφωσης για να επιτρέψετε σε αυτό το έργο να ολοκληρώσει την εργασία με τις υπηρεσίες ιστού RESTful Αυτό απαιτεί να κάνετε μια αλλαγή στο αρχείο που ονομάζεται Web.config . Αυτό το αρχείο εμφανίζεται στο ίδιο παράθυρο με το αρχείο έργου Webservice. Το αρχείο Web.config περιέχει όλες τις διαμορφώσεις που κάνουν την εφαρμογή ιστού να λειτουργεί όπως πρέπει. Η αλλαγή που πραγματοποιείται επιτρέπει στην εφαρμογή να στέλνει και να λαμβάνει δεδομένα ως μια καθαρή διαδικτυακή υπηρεσία RESTful.

  1. Κάντε κλικ στο αρχείο Web.config για να ανοίξετε τον κώδικα
  1. Βρείτε για τη γραμμή
  1. Αλλάξτε τη γραμμή σε

Βήμα 5) Το επόμενο βήμα σε αυτόν τον οδηγό RESTful API είναι να προσθέσουμε τον κώδικα για εφαρμογή. Όλος ο παρακάτω κώδικας πρέπει να γραφτεί στο αρχείο TutorialService.svc

  1. Το πρώτο bit είναι να προσθέσετε κώδικα για να αντιπροσωπεύσετε τα δεδομένα μας τα οποία θα χρησιμοποιηθούν στο πρόγραμμά μας. Θα έχουμε λοιπόν μια λίστα μεταβλητών συμβολοσειρών με τιμές "Arrays", "Queues" και "Stacks". Αυτό θα αντιπροσωπεύει το όνομα των μαθημάτων που διατίθενται μέσω της υπηρεσίας φιλοξενίας ιστοσελίδων.
namespace Webservice.REST{[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowedpublic class TutorialService{private static List  lst = new List  (new String[] {"Arrays","Queues","Stacks"});  

Βήμα 6) Στη συνέχεια θα καθορίσουμε τον κωδικό για τη μέθοδο GET. Αυτός ο κωδικός θα βρίσκεται επίσης στο ίδιο αρχείο TutorialService.svc. Αυτός ο κωδικός θα εκτελείται όποτε καλούμε την υπηρεσία από το πρόγραμμα περιήγησής μας.

Η παρακάτω μέθοδος θα χρησιμοποιηθεί για την εκπλήρωση του παρακάτω σεναρίου

  • Εάν ένας χρήστης θέλει μια λίστα με όλα τα διαθέσιμα σεμινάρια, τότε θα πρέπει να γραφτεί ο παρακάτω κώδικας για να το επιτύχει.
[WebGet(UriTemplate="/Tutorial")]public String GetAllTutorial(){int count = 1st.Count;String TutorialList = "";for (int i = 0; i < count; i++)TutorialList = TutorialList + lst[i] + ",";return TutorialList;}

Επεξήγηση κώδικα: -

  1. Η πρώτη γραμμή κώδικα είναι η πιο σημαντική. Χρησιμοποιείται για να καθορίσει πώς μπορούμε να καλέσουμε αυτήν τη μέθοδο μέσω μιας διεύθυνσης URL. Αν λοιπόν ο σύνδεσμος προς την υπηρεσία ιστού μας είναι http: // localhost: 52645 / TutorialService.svc και αν προσθέσουμε το «/ Tutorial» στη διεύθυνση URL ως http: // localhost: 52645 / TutorialService.svc / Tutorial , ο παραπάνω κώδικας θα επικαλεσθεί. Το χαρακτηριστικό του «WebGet» είναι μια παράμετρος που επιτρέπει σε αυτήν τη μέθοδο να είναι μια μέθοδος RESTful, ώστε να μπορεί να επικαλεσθεί μέσω του ρήματος GET.
  2. Αυτή η ενότητα του κώδικα χρησιμοποιείται για να περάσει από τη λίστα συμβολοσειρών μας στη μεταβλητή «lst» και να επιστρέψει όλες αυτές στο πρόγραμμα κλήσεων

Βήμα 7) Ο παρακάτω κώδικας διασφαλίζει ότι εάν πραγματοποιηθεί μια κλήση GET στην Υπηρεσία Εκμάθησης με αναγνωριστικό Tutorial, τότε θα επιστρέψει το αντίστοιχο Όνομα Εκμάθησης με βάση το αναγνωριστικό εκμάθησης.

[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")]public String GetTutorialbyID(String Tutorialid){int pid;Int32.TryParse(Tutorialid, out pid);return lst[pid];}

Επεξήγηση κώδικα: -

  1. Η πρώτη γραμμή κώδικα είναι η πιο σημαντική. Χρησιμοποιείται για να καθορίσει πώς μπορούμε να καλέσουμε αυτήν τη μέθοδο μέσω μιας διεύθυνσης URL. Επομένως, εάν ο σύνδεσμος προς την υπηρεσία ιστού μας είναι http: // localhost: 52645 / TutorialService.svc και αν προσθέσουμε το "/ Tutorial / {Tutorialid}" στη διεύθυνση URL, τότε θα μπορούσαμε να καλέσουμε την υπηρεσία ιστού ως http: //localhost:52645/TutorialService.svc/Tutorial/1 ως παράδειγμα. Η υπηρεσία διαδικτύου θα πρέπει τότε να επιστρέψει το όνομα Tutorial που είχε το αναγνωριστικό αναγνωριστικό # 1.
  2. Αυτή η ενότητα του κώδικα χρησιμοποιείται για να επιστρέψει το "όνομα Tutorial" το οποίο έχει μεταβιβάσει το αναγνωριστικό Tutorial στη μέθοδο web.
  • Από προεπιλογή, αυτό που πρέπει να θυμάστε είναι ότι ό, τι διαβιβάζεται στη διεύθυνση URL του προγράμματος περιήγησης είναι μια συμβολοσειρά.
  • Αλλά πρέπει να θυμάστε ότι το ευρετήριο στη λίστα μας πρέπει να είναι ακέραιος, οπότε προσθέτουμε τον απαραίτητο κώδικα για να μετατρέψετε πρώτα το Tutorialid σε ακέραιο και στη συνέχεια να το χρησιμοποιήσετε για να αποκτήσετε πρόσβαση στη θέση ευρετηρίου στη λίστα μας και
  • Στη συνέχεια, επιστρέψτε την τιμή στο πρόγραμμα κλήσεων αναλόγως.

Βήμα 8) Το επόμενο βήμα είναι να γράψετε τον κωδικό για τη μέθοδο POST. Αυτή η μέθοδος θα καλείται όποτε θέλουμε να προσθέσουμε μια τιμή συμβολοσειράς στη λίστα των Εκπαιδευτικών μέσω της μεθόδου POST. Για παράδειγμα, αν θέλετε να προσθέσετε το όνομα του Οδηγού "Δοκιμή λογισμικού", τότε θα πρέπει να χρησιμοποιήσετε τη μέθοδο POST.

Επεξήγηση κώδικα: -

  1. Η πρώτη γραμμή είναι το χαρακτηριστικό «WebInvoke» που έχει επισυναφθεί στη μέθοδο μας. Αυτό επιτρέπει τη χρήση της μεθόδου μέσω της κλήσης POST. Το χαρακτηριστικό RequestFormat και ResponseFormat πρέπει να αναφέρεται ως JSON, καθώς όταν δημοσιεύετε τιμές σε μια υπηρεσία ιστού RESTFul, οι τιμές πρέπει να είναι σε αυτήν τη μορφή.
  2. Η δεύτερη γραμμή κώδικα χρησιμοποιείται για την προσθήκη της τιμής συμβολοσειράς που έχει περάσει μέσω της κλήσης POST στην υπάρχουσα λίστα συμβολοσειρών Tutorial.

Βήμα 9) Τέλος, θα προσθέσουμε τη μέθοδο μας για τη διαχείριση της λειτουργίας ΔΙΑΓΡΑΦΗ Αυτή η μέθοδος θα επικαλεσθεί όποτε θέλουμε να διαγράψουμε μια υπάρχουσα τιμή συμβολοσειράς από τη λίστα των Tutorials μέσω της μεθόδου DELETE.

[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Ison,UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.Wrapped)]public void DeleteTutorial(String Tutorialid){int pid;Int32.TryParse(Tutorialid, out pid);1st.RemoveAt(pid);}

Επεξήγηση κώδικα: -

  1. Η πρώτη γραμμή είναι το χαρακτηριστικό «WebInvoke» που έχει επισυναφθεί στη μέθοδο μας. Αυτό επιτρέπει τη χρήση της μεθόδου μέσω της κλήσης POST. Το χαρακτηριστικό RequestFormat και ResponseFormat πρέπει να αναφέρεται ως JSON, καθώς όταν δημοσιεύετε τιμές σε μια υπηρεσία ιστού RESTFul, οι τιμές πρέπει να είναι σε αυτήν τη μορφή. Σημειώστε ότι η παράμετρος Μέθοδος ορίζεται σε "ΔΙΑΓΡΑΦΗ". Αυτό σημαίνει ότι όποτε εκδίδουμε το ρήμα ΔΙΑΓΡΑΦΗ, αυτή η μέθοδος θα καλείται.
  2. Η δεύτερη γραμμή κώδικα χρησιμοποιείται για τη λήψη του Tutorialid που αποστέλλεται μέσω της κλήσης DELETE και στη συνέχεια διαγραφή αυτού του αναγνωριστικού από τη λίστα μας. (Η συνάρτηση Int32 στον κώδικα χρησιμοποιείται για τη μετατροπή του αναγνωριστικού οδηγού από μια μεταβλητή συμβολοσειράς σε ακέραιο).

Εκτελεί την πρώτη σας υπηρεσία Web Restful

Τώρα που δημιουργήσαμε ολόκληρη την υπηρεσία Ιστού μας στην παραπάνω ενότητα. Ας δούμε πώς μπορούμε να εκτελέσουμε την υπηρεσία Tutorial έτσι ώστε να μπορεί να καλείται από οποιονδήποτε πελάτη.

Για να εκτελέσετε την υπηρεσία ιστού, ακολουθήστε τα παρακάτω βήματα

Βήμα 1) Κάντε δεξί κλικ στο αρχείο έργου - Webservice.REST

Βήμα 2) Επιλέξτε την επιλογή μενού «Ορισμός ως StartUp Project». Αυτό θα διασφαλίσει ότι αυτό το έργο εκτελείται όταν το Visual Studio εκτελεί ολόκληρη τη λύση

Βήμα 3) Το επόμενο βήμα είναι να εκτελέσετε το ίδιο το έργο. Τώρα ανάλογα με το προεπιλεγμένο πρόγραμμα περιήγησης που είναι εγκατεστημένο στο σύστημα, το κατάλληλο όνομα προγράμματος περιήγησης θα έρθει δίπλα στο κουμπί εκτέλεσης στο Visual Studio. Στην περίπτωσή μας, εμφανίζεται το Google Chrome. Απλώς κάντε κλικ σε αυτό το κουμπί.

Παραγωγή:-

Όταν εκτελείται το έργο, μπορείτε να περιηγηθείτε στην ενότητα TutorialService.svc / Tutorial και θα λάβετε την παρακάτω έξοδο.

Στην παραπάνω έξοδο,

  • Μπορείτε να δείτε ότι το πρόγραμμα περιήγησης επικαλείται το ρήμα «GET» και εκτελεί τη μέθοδο «GetAllTutorial» στην υπηρεσία ιστού. Αυτή η ενότητα χρησιμοποιείται για την προβολή όλων των εκπαιδευτικών που εκτίθενται από την υπηρεσία μας στο Διαδίκτυο.

Δοκιμή της πρώτης υπηρεσίας Web Restful

Στην παραπάνω ενότητα, έχουμε ήδη δει πώς να χρησιμοποιήσουμε το πρόγραμμα περιήγησης για να εκτελέσουμε το ρήμα «GET» και να επικαλεστούμε το «GetAllTutorial».

  1. Ας χρησιμοποιήσουμε τώρα το πρόγραμμα περιήγησης για να εκτελέσουμε το ακόλουθο σενάριο χρήσης.

GET Tutorial / Tutorialid - Όταν ένας πελάτης επικαλεστεί αυτό το Restful API, θα του δοθεί το όνομα Tutorialid βάσει του Tutorialid που έστειλε ο πελάτης

Στο πρόγραμμα περιήγησής σας, προσθέστε τη συμβολοσειρά / 1 μετά τη λέξη Tutorial στη διεύθυνση URL. Εάν πατήσετε το κουμπί enter, θα λάβετε την παρακάτω έξοδο

Τώρα θα δείτε την έξοδο των Ουρών που αντιστοιχεί πραγματικά στον αριθμό 1 στη λίστα των Συμβολοσειρών συμβολοσειρών. Αυτό σημαίνει ότι η μέθοδος 'GetTutorialbyID' γίνεται επίκληση από την υπηρεσία Web. Δείχνει επίσης ότι η τιμή του 1 μεταβιβάζεται με επιτυχία μέσω του προγράμματος περιήγησης στην υπηρεσία ιστού και στη μέθοδο μας και γι 'αυτό λαμβάνουμε τη σωστή αντίστοιχη τιμή του "Ουρές" στο πρόγραμμα περιήγησης.

  1. Στη συνέχεια ας καταναλώσουμε την υπηρεσία μας στο Web εκτελώντας το παρακάτω σενάριο. Για αυτό, πρέπει να εγκαταστήσετε το εργαλείο που ονομάζεται "Fiddler", το οποίο είναι ένα δωρεάν εργαλείο λήψης από τον ιστότοπο.

POST Tutorial / Tutorialname - Όταν ένας πελάτης επικαλείται αυτό το Restful API, ο πελάτης θα υποβάλει αίτημα για εισαγωγή ενός εκπαιδευτικού ονόματος. Στη συνέχεια, η υπηρεσία ιστού θα προσθέσει το υποβληθέν όνομα Tutorial στη συλλογή.

Εκτελέστε το εργαλείο Filddler και εκτελέστε τα παρακάτω βήματα.

  1. Μεταβείτε στην ενότητα του συνθέτη. Αυτό χρησιμοποιείται για τη δημιουργία αιτημάτων που μπορούν να υποβληθούν σε οποιονδήποτε ιστό

    εφαρμογή.

  2. Βεβαιωθείτε ότι ο τύπος αιτήματος είναι "POST" και η σωστή διεύθυνση URL χτυπά, η οποία στην περίπτωσή μας θα πρέπει να είναι http: // localhost: 52645 / TutorialService.svc / Tutorial
  3. Βεβαιωθείτε ότι ο τύπος περιεχομένου έχει επισημανθεί ως εφαρμογή / json. Να θυμάστε ότι η μέθοδος αιτήματος POST στην υπηρεσία μας στο Web δέχεται μόνο δεδομένα στυλ json, επομένως πρέπει να διασφαλίσουμε ότι αυτό προσδιορίζεται όταν στέλνουμε ένα αίτημα στην εφαρμογή μας.
  4. Τέλος, πρέπει να εισαγάγουμε τα δεδομένα μας. Να θυμάστε ότι η μέθοδος μας για το POST δέχεται μια παράμετρο που ονομάζεται «str». Εδώ ορίζουμε λοιπόν ότι θέλουμε να προσθέσουμε μια τιμή που ονομάζεται "Δέντρα" στη συλλογή ονομάτων Tutorial και να διασφαλίσουμε ότι έχει επισημανθεί στο όνομα της μεταβλητής str.

Τέλος, απλώς κάντε κλικ στο κουμπί Εκτέλεση στο Fiddler. Αυτό θα στείλει ένα αίτημα στην υπηρεσία διαδικτύου για POST τα δεδομένα "Δέντρα" στην υπηρεσία ιστού μας.

Τώρα, όταν περιηγηθούμε στο Tutorial URL για να δείξουμε όλες τις συμβολοσειρές στη λίστα Tutorial μας, θα δείτε τώρα ότι υπάρχει και η αξία του "Trees". Αυτό δείχνει ότι το αίτημα POST στην υπηρεσία Ιστού εκτελέστηκε με επιτυχία και ότι προστέθηκε με επιτυχία στη Λίστα Εκμάθησης.

  1. Στη συνέχεια ας καταναλώσουμε την υπηρεσία μας στο Web εκτελώντας το παρακάτω σενάριο. Για αυτό επίσης πρέπει να χρησιμοποιήσουμε το εργαλείο fiddler

ΔΙΑΓΡΑΦΗ Tutorial / Tutorialid- Όταν ένας πελάτης επικαλεστεί αυτό το Restful API, ο πελάτης θα υποβάλει αίτημα για διαγραφή ενός ονόματος Tutorialn που βασίζεται στο Tutorialid. Στη συνέχεια, η υπηρεσία Ιστού θα διαγράψει το υποβληθέν όνομα Εκμάθησης από τη συλλογή.

Εκτελέστε το εργαλείο Filddler και εκτελέστε τα παρακάτω βήματα

  1. Μεταβείτε στην ενότητα του συνθέτη. Αυτό χρησιμοποιείται για τη δημιουργία αιτημάτων που μπορούν να υποβληθούν σε οποιονδήποτε ιστό

    εφαρμογή.

  2. Βεβαιωθείτε ότι ο τύπος αιτήματος είναι "ΔΙΑΓΡΑΦΗ" και η σωστή διεύθυνση URL χτυπά, η οποία στην περίπτωσή μας θα πρέπει να είναι http: // localhost: 52645 / TutorialService.svc / Tutorial . Βεβαιωθείτε ότι το αναγνωριστικό που χρησιμοποιείται για τη διαγραφή μιας συμβολοσειράς στη λίστα που αποστέλλεται μέσω της διεύθυνσης URL ως παράμετρος. Στο παράδειγμα REST μας, στέλνουμε 1 έτσι αυτό θα διαγράψει το 2 nd στοιχείο στη συλλογή μας, η οποία είναι «ουρές».

Τέλος, απλώς κάντε κλικ στο κουμπί Εκτέλεση στο Fiddler. Αυτό θα στείλει ένα αίτημα στην υπηρεσία Ιστού για ΔΙΑΓΡΑΦΗ των δεδομένων "Ουρές" στην υπηρεσία ιστού μας.

Τώρα, όταν περιηγηθούμε στο Tutorial URL για να δείξουμε όλες τις συμβολοσειρές στη λίστα Tutorial, θα παρατηρήσετε ότι η τιμή του "Queues" δεν υπάρχει πλέον.

Αυτό δείχνει ότι το αίτημα ΔΙΑΓΡΑΦΗΣ στην υπηρεσία ιστού εκτελέστηκε με επιτυχία. Το στοιχείο στο ευρετήριο Νο 1 στη λίστα των συμβολοσειρών συμβολοσειράς διαγράφηκε με επιτυχία.

Περίληψη

  • Το REST σημαίνει Μεταφραστική Κατάσταση Μεταφοράς. Το REST χρησιμοποιείται για τη δημιουργία διαδικτυακών υπηρεσιών που είναι ελαφρού, διατηρήσιμου και επεκτάσιμου χαρακτήρα.
  • Όλο και περισσότερες εφαρμογές μετακινούνται στην αρχιτεκτονική Restful. Αυτό συμβαίνει επειδή υπάρχουν πολλοί άνθρωποι που χρησιμοποιούν κινητές συσκευές και μια ευρύτερη ποικιλία εφαρμογών που μετακινούνται στο cloud.
  • Οι κύριες πτυχές του REST είναι οι πόροι που βρίσκονται στον διακομιστή και τα ρήματα GET, POST, PUT και DELETE, τα οποία μπορούν να χρησιμοποιηθούν για την εργασία με αυτούς τους πόρους.
  • Το Visual Studio και το.Net μπορούν να χρησιμοποιηθούν για τη δημιουργία υπηρεσιών Web Restful.
  • Κατά τη δοκιμή διαδικτυακών υπηρεσιών για POST και PUT, πρέπει να χρησιμοποιήσετε ένα άλλο εργαλείο που ονομάζεται fiddler, το οποίο μπορεί να χρησιμοποιηθεί για την αποστολή της αίτησης POST και PUT στον διακομιστή.