Προγραμματισμός

Πώς να καταναλώσετε ένα ASP.NET Core Web API χρησιμοποιώντας το RestSharp

Το REST είναι ένα αρκτικόλεξο για την αντιπροσωπευτική κρατική μεταφορά, ένα αρχιτεκτονικό στυλ που έχει γίνει εξαιρετικά δημοφιλές τα τελευταία χρόνια. Ένα RESTful API είναι αυτό που έχει δημιουργηθεί σύμφωνα με τις αρχές και τις οδηγίες του REST. Τα RESTful API συνήθως επιστρέφουν απλό κείμενο, JSON ή XML ως απόκριση.

Το RestSharp είναι μια βιβλιοθήκη πελατών HTTP ανοιχτού κώδικα που διευκολύνει την κατανάλωση υπηρεσιών RESTful. Το RestSharp παρέχει μια φιλική προς τον προγραμματιστή διεπαφή για εργασία με υπηρεσίες RESTful, ενώ αφαιρεί τις εσωτερικές περιπλοκές της εργασίας με αιτήματα HTTP. Το RestSharp υποστηρίζει συγχρονισμένα και ασύγχρονα αιτήματα.

Αυτό το άρθρο παρουσιάζει μια συζήτηση για το πώς μπορούμε να συνεργαστούμε με το RestSharp για να καταναλώσουμε υπηρεσίες που έχουν κατασκευαστεί χρησιμοποιώντας το ASP.NET Core.

Για να εργαστείτε με τα παραδείγματα κώδικα σε αυτό το άρθρο, θα πρέπει να έχετε εγκαταστήσει το Visual Studio 2019 στο σύστημά σας. Εάν δεν έχετε ήδη αντίγραφο, μπορείτε να κατεβάσετε το Visual Studio 2019 εδώ.

Δημιουργήστε ένα έργο ASP.NET Core API

Πρώτα απ 'όλα, ας δημιουργήσουμε ένα έργο ASP.NET Core στο Visual Studio. Υποθέτοντας ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο ASP.Net Core στο Visual Studio.

  1. Εκκινήστε το Visual Studio IDE.
  2. Κάντε κλικ στο "Δημιουργία νέου έργου".
  3. Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "ASP.NET Core Web Application" από τη λίστα των προτύπων που εμφανίζονται.
  4. Κάντε κλικ στο Επόμενο.
  5. Στο παράθυρο "Διαμόρφωση του νέου έργου", καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
  6. Κάντε κλικ στο Δημιουργία.
  7. Στο παράθυρο "Δημιουργία νέας εφαρμογής Web ASP.Net Core", επιλέξτε .NET Core ως χρόνο εκτέλεσης και ASP.NET Core 2.2 (ή μεταγενέστερη έκδοση) από την αναπτυσσόμενη λίστα στην κορυφή. Θα χρησιμοποιήσω το ASP.NET Core 3.0 εδώ.
  8. Επιλέξτε "API" ως πρότυπο έργου για να δημιουργήσετε μια νέα εφαρμογή ASP.NET Core API.
  9. Βεβαιωθείτε ότι τα πλαίσια ελέγχου "Ενεργοποίηση υποστήριξης Docker" και "Διαμόρφωση για HTTPS" δεν είναι επιλεγμένα, καθώς δεν θα χρησιμοποιούμε αυτές τις δυνατότητες εδώ.
  10. Βεβαιωθείτε ότι ο Έλεγχος ταυτότητας έχει οριστεί ως "Χωρίς έλεγχο ταυτότητας", καθώς ούτε θα χρησιμοποιούμε έλεγχο ταυτότητας.
  11. Κάντε κλικ στο Δημιουργία.

Ακολουθώντας αυτά τα βήματα, θα δημιουργηθεί ένα νέο έργο ASP.NET Core API στο Visual Studio. Στη συνέχεια, επιλέξτε το φάκελο Λύσεις ελεγκτών στο παράθυρο Εξερεύνηση λύσεων, κάντε κλικ στην επιλογή "Προσθήκη -> Ελεγκτής ..." και επιλέξτε "Ελεγκτής API με ενέργειες ανάγνωσης / εγγραφής". Ονομάστε αυτόν τον νέο ελεγκτή DefaultController.

Θα χρησιμοποιήσουμε αυτό το έργο στις επόμενες ενότητες αυτού του άρθρου.

Εφαρμόστε το DefaultController στο ASP.NET Core API

Ανοίξτε το αρχείο DefaultController.cs και αντικαταστήστε τον κωδικό σε αυτό με αυτόν που δίνεται παρακάτω:

χρησιμοποιώντας Microsoft.AspNetCore.Mvc;

χρησιμοποιώντας System.Collections.Generic;

namespace RESTAPIDemo.Controllers

{

[Διαδρομή ("api / [ελεγκτής]")]

[ApiController]

δημόσια τάξη DefaultController: ControllerBase

    {

ιδιωτικοί συγγραφείς λεξικών ανάγνωσης = νέο λεξικό ();

δημόσιο DefaultController ()

        {

συγγραφείς. Προσθήκη (1, "Joydip Kanjilal");

συγγραφείς. Προσθήκη (2, "Steve Smith");

συγγραφείς. Προσθήκη (3, "Michele Smith");

        }

[HttpGet]

δημόσια λίστα Λήψη ()

        {

Λίστα lstAuthors = νέα λίστα ();

foreach (KeyValuePair keyValuePair σε συγγραφείς)

lstAuthors.Add (keyValuePair.Value);

επιστροφή lstAuthors;

        }

[HttpGet ("{id}", Όνομα = "Λήψη")]

δημόσια συμβολοσειρά Get (int id)

        {

συγγραφείς επιστροφής [id];

        }

[HttpPost]

public void Post (τιμή συμβολοσειράς [FromBody])

        {

συγγραφείς. Προσθήκη (4, τιμή);

        }

[HttpPut ("{id}")]

public void Put (int id, [FromBody] τιμή συμβολοσειράς)

        {

συγγραφείς [id] = τιμή;

        }

[HttpDelete ("{id}")]

δημόσιο κενό Διαγραφή (int id)

        {

συγγραφείς. Κατάργηση (id);

        }

    }

}

Ανατρέξτε στην κλάση DefaultController παραπάνω. Σημειώστε ότι αυτή η τάξη περιέχει μεθόδους δράσης που αντιστοιχούν σε καθένα από τα ρήματα HTTP GET, POST, PUT και DELETE. Για λόγους απλότητας, χρησιμοποιούμε ένα Λεξικό εδώ για την αποθήκευση και ανάκτηση δεδομένων. Μπορείτε να δοκιμάσετε αυτό το API χρησιμοποιώντας το πρόγραμμα περιήγησης ιστού ή εργαλεία όπως ο Ταχυδρόμος ή το Fiddler. Σημειώστε ότι έχω κωδικοποιήσει το αναγνωριστικό στη μέθοδο HttpPost μόνο για απλότητα. Πρέπει να το εφαρμόσετε με τον δικό σας τρόπο για να δημιουργήσετε ένα μοναδικό κλειδί.

Μέχρι εδώ καλά. Στις ενότητες που ακολουθούν θα μάθουμε πώς να συνεργαζόμαστε με το RestSharp για να καταναλώσουμε το API που έχουμε δημιουργήσει.

Δημιουργήστε τον πελάτη για να καταναλώσετε το API

Θα χρησιμοποιήσουμε μια εφαρμογή κονσόλας ως πελάτη για να καταναλώσουμε το API που δημιουργήσαμε νωρίτερα. Ας υποθέσουμε ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο εφαρμογής .NET Core Console στο Visual Studio.

  1. Εκκινήστε το Visual Studio IDE.
  2. Κάντε κλικ στο "Δημιουργία νέου έργου".
  3. Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "Εφαρμογή κονσόλας (.NET Core)" από τη λίστα των προτύπων που εμφανίζονται.
  4. Κάντε κλικ στο Επόμενο.
  5. Στο παράθυρο "Διαμόρφωση του νέου έργου" που εμφανίζεται στη συνέχεια, καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
  6. Κάντε κλικ στο Δημιουργία.

Αυτό πρέπει να κάνουμε για να δημιουργήσουμε ένα νέο έργο εφαρμογής .NET Core Console.

Εγκαταστήστε το πακέτο RestSharp NuGet

Για να εργαστείτε με το RestSharp, θα πρέπει να εγκαταστήσετε το πακέτο RestSharp από το NuGet. Μπορείτε να το κάνετε είτε μέσω του NuGet Package Manager στο Visual Studio 2019 IDE είτε εκτελώντας την ακόλουθη εντολή στο NuGet Package Manager Console:

Εγκατάσταση-πακέτου RestSharp

Καταναλώστε το ASP.NET Core API χρησιμοποιώντας το RestSharp

Μόλις εγκαταστήσετε το RestSharp στο έργο σας, μπορείτε να αρχίσετε να το χρησιμοποιείτε. Πρώτον, θα πρέπει να δημιουργήσετε μια παρουσία του RestClient. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να δημιουργήσετε και να αρχικοποιήσετε την κλάση RestClient. Λάβετε υπόψη ότι μεταβιβάζουμε τη βασική διεύθυνση URL στον κατασκευαστή της κλάσης RestClient.

RestClient client = νέο RestClient ("// localhost: 58179 / api /");

Στη συνέχεια, θα πρέπει να δημιουργήσετε μια παρουσία της κλάσης RestRequest περνώντας το όνομα πόρου και τη μέθοδο που θα χρησιμοποιηθεί. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορεί να επιτευχθεί αυτό.

RestRequest request = νέο RestRequest ("Προεπιλογή", Method.GET);

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

IRestResponse απόκριση = πελάτης. Εκτελέστε(αίτηση);

Το παρακάτω είναι η πλήρης λίστα κωδικών για την αναφορά σας.

χρησιμοποιώντας το RestSharp;

χρησιμοποιώντας το Σύστημα;

χρησιμοποιώντας System.Collections.Generic;

namespace RESTSharpClientDemo

{

Πρόγραμμα τάξης

    {

ιδιωτικό στατικό πελάτη RestClient = νέο

RestClient ("// localhost: 58179 / api /");

static void Main (συμβολοσειρά [] args)

        {

RestRequest request = νέο RestRequest ("Προεπιλογή",

Μέθοδος.GET);

IRestResponse απόκριση =

πελάτης. Εκτελέστε(αίτηση);

Κονσόλα.ReadKey ();

        }

    }

}

Για να υποβάλετε αίτημα POST χρησιμοποιώντας το RestSharp, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:

RestRequest request = νέο RestRequest ("Προεπιλογή", Method.POST);

request.AddJsonBody ("Robert Michael");

var απόκριση = πελάτης. Εκτέλεση (αίτημα);

Το RestSharp είναι διαθέσιμο σε πολλές πλατφόρμες .NET, που είναι ένας από τους λόγους για τους οποίους είναι τόσο δημοφιλές. Αξίζει επίσης να σημειωθεί η δυνατότητα αυτόματης αποεριοποίησης του RestSharp. Μπορείτε να μάθετε περισσότερα για το RestSharp στο GitHub.

$config[zx-auto] not found$config[zx-overlay] not found