Tutorial sui servizi Web RESTful: cos'è l'API REST con l'esempio
Che cosa sono i servizi Web restful?
Servizi Web riposanti è un servizio leggero, gestibile e scalabile basato sull'architettura REST. Il servizio Web RESTful espone l'API dalla tua applicazione in modo sicuro, uniforme e senza stato al client chiamante. Il client chiamante può eseguire operazioni predefinite utilizzando il servizio RESTful. Il protocollo sottostante per REST è HTTP. REST sta per REpresentational State Transfer.
Elementi chiave RESTful
I servizi Web REST hanno fatto davvero molta strada sin dal loro inizio. Nel 2002, il consorzio Web aveva rilasciato la definizione di servizi web WSDL e SOAP. Ciò ha costituito lo standard di come vengono implementati i servizi web.
Nel 2004 il consorzio web ha anche rilasciato la definizione di uno standard aggiuntivo chiamato RESTful. Negli ultimi due anni, questo standard è diventato piuttosto popolare. Ed è utilizzato da molti dei siti Web più popolari in tutto il mondo, tra cui Facebook e Twitter.
REST è un modo per accedere alle risorse che si trovano in un particolare ambiente. Ad esempio, potresti avere un server che potrebbe ospitare documenti, immagini o video importanti. Tutti questi sono un esempio di risorse. Se un client, ad esempio un browser Web, necessita di una di queste risorse, deve inviare una richiesta al server per accedere a queste risorse. Ora i servizi REST definiscono un modo in cui è possibile accedere a queste risorse.
Gli elementi chiave di un'implementazione RESTful sono i seguenti:
- Risorse – Il primo elemento chiave è la risorsa stessa. Supponiamo che un'applicazione web su un server contenga record di diversi dipendenti. Supponiamo che l'URL dell'applicazione web sia https://demo.guru99.com. Ora, per accedere a una risorsa record di un dipendente tramite i servizi REST, è possibile emettere il comando https://demo.guru99.com/employee/1 – Questo comando indica al server web di fornire i dettagli del dipendente il cui numero di matricola è 1.
- Richiedi verbi – Descrivono cosa vuoi fare con la risorsa. Un browser emette un verbo GET per indicare all'endpoint che desidera ottenere i dati. Tuttavia, sono disponibili molti altri verbi, inclusi elementi come POST, PUT e DELETE. Quindi nel caso dell'esempio https://demo.guru99.com/employee/1 , il browser web sta in realtà emettendo un verbo GET perché desidera ottenere i dettagli del record del dipendente.
- Richiedi intestazioni – Si tratta di istruzioni aggiuntive inviate con la richiesta. Potrebbero definire il tipo di risposta richiesta o i dettagli dell'autorizzazione.
- Ente di richiesta – I dati vengono inviati con la richiesta. I dati vengono normalmente inviati nella richiesta quando viene effettuata una richiesta POST ai servizi web REST. In una chiamata POST, il client in realtà comunica ai servizi web REST che desidera aggiungere una risorsa al server. Quindi, il corpo della richiesta conterrebbe i dettagli della risorsa che deve essere aggiunta al server.
- Corpo di risposta – Questo è il corpo principale della risposta. Quindi, nel nostro esempio di API RESTful, se dovessimo interrogare il server web tramite request https://demo.guru99.com/employee/1 , il server web potrebbe restituire un documento XML con tutti i dettagli del dipendente nel corpo della risposta.
- Codici di stato della risposta – Questi codici sono i codici generali che vengono restituiti insieme alla risposta dal server web. Un esempio è il codice 200 che normalmente viene restituito se non si verificano errori quando si restituisce una risposta al client.
Metodi riposanti
Il diagramma seguente mostra principalmente tutti i verbi (POST, GET, PUT e DELETE) e un esempio API REST di cosa significherebbero.
Supponiamo di avere un servizio Web RESTful definito nella posizione. https://demo.guru99.com/employee . Quando il client effettua una richiesta a questo servizio Web, può specificare uno qualsiasi dei normali verbi HTTP GET, POST, DELETE e PUT. Di seguito è riportato cosa accadrebbe se i rispettivi verbi fossero inviati dal cliente.
- POST – Questo verrebbe utilizzato per creare un nuovo dipendente utilizzando il servizio web RESTful
- GET – Questo verrebbe utilizzato per ottenere un elenco di tutti i dipendenti che utilizzano il servizio web RESTful
- PUT – Questo verrebbe utilizzato per aggiornare tutti i dipendenti che utilizzano il servizio web RESTful
- DELETE – Questo verrebbe utilizzato per eliminare tutti i dipendenti che utilizzano i servizi RESTful
Diamo uno sguardo dalla prospettiva di un singolo record. Supponiamo che ci fosse un record di dipendente con il numero di dipendente pari a 1.
Le seguenti azioni avrebbero i rispettivi significati.
- POST – Ciò non sarebbe applicabile poiché stiamo recuperando i dati del dipendente 1 che è già stato creato.
- GET – Questo verrebbe utilizzato per ottenere i dettagli del dipendente con numero dipendente pari a 1 utilizzando il servizio Web RESTful
- PUT – Questo verrebbe utilizzato per aggiornare i dettagli del dipendente con numero dipendente pari a 1 utilizzando il servizio Web RESTful
- DELETE – Questo viene utilizzato per eliminare i dettagli del dipendente con numero dipendente come 1
Perché riposante
Il termine "Restful" è diventato popolare principalmente per i seguenti motivi:
1. Lingue e ambienti eterogenei – Questo è uno dei motivi fondamentali che è lo stesso che abbiamo visto per SOAP come pure.
- Consente alle applicazioni Web basate su vari linguaggi di programmazione di comunicare tra loro
- Con l'aiuto dei servizi Restful, queste applicazioni web possono risiedere su ambienti diversi, alcuni potrebbero essere attivi Windowse altri potrebbero essere su Linux.
Ma alla fine, qualunque sia l’ambiente, il risultato finale dovrebbe essere sempre lo stesso: dovrebbero essere in grado di parlare tra loro. I servizi Web restful offrono questa flessibilità alle applicazioni basate su vari linguaggi di programmazione e piattaforme per comunicare tra loro.
L'immagine seguente fornisce un esempio di un'applicazione Web che ha l'esigenza di comunicare con altre applicazioni come Facebook, Twitter e Google.
Ora, se un'applicazione client dovesse funzionare con siti come Facebook, Twitter, ecc., probabilmente dovrebbe sapere qual è il linguaggio su cui sono basati Facebook, Google e Twitter e anche su quale piattaforma sono basati.
Sulla base di questo possiamo scrivere il codice di interfaccia per la nostra applicazione web, ma questo potrebbe rivelarsi un incubo.
Facebook, Twitter e Google espongono le loro funzionalità sotto forma di servizi web Restful. Ciò consente a qualsiasi applicazione client di chiamare questi servizi Web tramite REST.
2. L'evento dei Dispositivi – Al giorno d’oggi bisogna sistemare tutto Mobile dispositivi, siano essi dispositivi mobili, notebook o persino sistemi per auto.
Riesci a immaginare la quantità di sforzi per provare a codificare applicazioni su questi dispositivi per comunicare con normali applicazioni web? Ancora una volta, le API RESTful possono semplificare questo lavoro perché, come detto nel punto numero 1, non hai realmente bisogno di sapere qual è il livello sottostante per il dispositivo.
3. Infine c'è l'evento della Nuvola – Tutto si sta spostando sul cloud. Le applicazioni si stanno lentamente spostando verso sistemi basati su cloud come in Azure or Amazon. Azure e Amazon forniscono molte API basate sull'architettura RESTful. Quindi, le applicazioni ora devono essere sviluppate in modo tale da essere rese compatibili con il Cloud. Quindi, poiché tutte le architetture basate su Cloud funzionano sul principio REST, ha più senso che i servizi Web siano programmati sull'architettura basata sui servizi REST per sfruttare al meglio i servizi basati su Cloud.
Riposante Architectura
Un'applicazione o un'architettura considerata RESTful o in stile REST ha le seguenti caratteristiche
1. Stato e funzionalità sono suddivisi in risorse distribuite – Ciò significa che ogni risorsa dovrebbe essere accessibile tramite i normali comandi HTTP di GET, POST, PUT o DELETE. Quindi, se qualcuno volesse ottenere un file da un server, dovrebbe essere in grado di emettere la richiesta GET e ottenere il file. Se vogliono inserire un file sul server, dovrebbero essere in grado di emettere la richiesta POST o PUT. E infine, se desiderano eliminare un file dal server, possono inviare la richiesta DELETE.
2. L'architettura è client/server, stateless, stratificata e supporta la memorizzazione nella cache
- Client-server è l'architettura tipica in cui il server può essere il server web che ospita l'applicazione e il client può essere semplice come un browser web.
- Senza stato significa che lo stato dell'applicazione non viene mantenuto in REST. Ad esempio, se elimini una risorsa da un server utilizzando il comando DELETE, non puoi aspettarti che le informazioni sull'eliminazione vengano passate alla richiesta successiva.
Per garantire che la risorsa venga eliminata, è necessario emettere la richiesta GET. La richiesta GET verrebbe utilizzata per ottenere prima tutte le risorse sul server. Dopodiché bisognerebbe vedere se la risorsa è stata effettivamente eliminata.
Principi e vincoli RESTFul
L'architettura REST si basa su alcune caratteristiche che sono elaborate di seguito. Qualsiasi servizio web RESTful deve rispettare le caratteristiche di seguito per poter essere definito RESTful. Queste caratteristiche sono anche note come principi di progettazione che devono essere seguiti quando si lavora con servizi basati su RESTful.
Questo è il requisito più fondamentale di un'architettura basata su REST. Significa che il server avrà un servizio web RESTful che fornirà la funzionalità richiesta al client. Il client invia una richiesta al servizio web sul server. Il server rifiuterà la richiesta o la rispetterà e fornirà una risposta adeguata al client.
- apolide
Il concetto di stateless significa che spetta al client garantire che tutte le informazioni richieste siano fornite al server. Ciò è necessario affinché il server possa elaborare la risposta in modo appropriato. Il server non dovrebbe conservare alcun tipo di informazione tra le richieste del client. È una sequenza di domanda-risposta indipendente molto semplice. Il client pone una domanda, il server risponde in modo appropriato. Il cliente farà un'altra domanda. Il server non ricorderà lo scenario domanda-risposta precedente e dovrà rispondere alla nuova domanda in modo indipendente.
- Cache
Il concetto di Cache è quello di aiutare con il problema degli apolidi descritto nell'ultimo punto. Poiché ciascuna richiesta del client del server è di natura indipendente, a volte il client potrebbe chiedere nuovamente al server la stessa richiesta. Questo anche se lo aveva già chiesto in passato. Questa richiesta andrà al server e il server darà una risposta. Ciò aumenta il traffico attraverso la rete. La cache è un concetto implementato sul client per memorizzare le richieste che sono già state inviate al server. Pertanto, se la stessa richiesta viene fornita dal client, invece di andare al server, andrebbe nella cache e otterrebbe le informazioni richieste. Ciò consente di risparmiare la quantità di traffico di rete avanti e indietro dal client al server.
- Sistema a strati
Il concetto di un sistema a livelli è che qualsiasi livello aggiuntivo come un livello middleware può essere inserito tra il client e il server effettivo che ospita il servizio web RESTFul (il livello middleware è dove viene creata tutta la logica aziendale. Questo può essere un servizio aggiuntivo creato con cui il client può interagire prima di effettuare una chiamata al servizio web.). Ma l'introduzione di questo livello deve essere trasparente in modo da non disturbare l'interazione tra client e server.
- Contratto di interfaccia/uniforme
Questa è la tecnica alla base di come dovrebbero funzionare i servizi Web RESTful. RESTful funziona fondamentalmente sul livello web HTTP e utilizza i verbi chiave seguenti per lavorare con le risorse sul server
- POST – Per creare una risorsa sul server
- GET – Per recuperare una risorsa dal server
- PUT – Per modificare lo stato di una risorsa o aggiornarla
- DELETE – Per rimuovere o eliminare una risorsa dal server
Crea il tuo primo servizio Web Restful in ASP.NET
Ora in questo tutorial sull'API REST, impareremo come creare un servizio Web Restful in ASP.NET:
I servizi Web possono essere creati in una varietà di lingue. Molti ambienti di sviluppo integrati possono essere utilizzati per creare servizi basati su REST.
In questo esempio di API RESTful, creeremo la nostra applicazione REST in .Net usando Visual Studio. Nel nostro esempio, per i servizi web RESTful emuleremo il seguente esempio di servizio REST.
Avremo un servizio web Restful che funzionerà sul set di dati riportato di seguito.
Il set di dati riportato di seguito rappresenta un esempio di API REST di un'azienda che espone i tutorial basati sul Tutorialid.
Tutorialid | NomeTutorial |
---|---|
0 | Array |
1 | code |
2 | Stacks |
Nel nostro esempio di tutorial sull'API REST, implementeremo i seguenti verbi riposanti.
- OTTIENI il tutorial – Quando un cliente richiama questa API Restful, gli verrà fornito l'intero set di tutorial disponibili dal servizio web.
- OTTIENI Tutorial/Tutorialid – Quando un client invoca questa API Restful, gli verrà assegnato il nome del Tutorial in base al Tutorialid inviato dal client.
- POST Tutorial/Nome tutorial – Quando un client richiama questa API Restful, il client invierà una richiesta per inserire un nome Tutorial. Il servizio Web aggiungerà quindi il nome del tutorial inviato alla raccolta.
- ELIMINA Tutorial/Tutorialid– Quando un client richiama questa API Restful, il client invierà una richiesta per eliminare un Tutorialname in base al Tutorialid. Il servizio Web eliminerà quindi il nome del tutorial inviato dalla raccolta.
Seguiamo i passaggi seguenti in questo tutorial sull'API RESTful per creare i nostri primi servizi Web RESTful, che eseguono l'implementazione di cui sopra.
Come creare il tuo primo servizio Web riposante
Passo 1) Crea nuovo progetto.
Il primo passo è creare un file vuoto Asp.Net Applicazione Web. Da Visual Studio 2013, fare clic sull'opzione di menu File->Nuovo progetto.
Una volta cliccato sull'opzione Nuovo progetto, Visual Studio ti darà un'altra finestra di dialogo per scegliere il tipo di progetto e per fornire i dettagli necessari del progetto. Questo è spiegato nel passaggio successivo di questo tutorial sulle API RESTful
Passo 2) Inserisci il nome e il luogo del progetto.
- Assicurati di scegliere prima i servizi web RESTful C# modello web di applicazione Web ASP.NET. Il progetto deve essere di questo tipo per creare un progetto di servizi web. Scegliendo questa opzione, Visual Studio eseguirà i passaggi necessari per aggiungere i file richiesti da qualsiasi applicazione basata sul web.
- Dai un nome al tuo progetto che nel nostro caso è stato dato come "Webservice.REST".
- Quindi assicurati di fornire una posizione in cui verranno archiviati i file di progetto.
Una volta fatto, vedrai il file di progetto creato nel tuo Solution Explorer in Visual Studio 2013.
Passo 3) Creare il file del servizio Web.
Il passaggio successivo è creare il file del servizio Web che avrà il servizio Web RESTful
- Innanzitutto fare clic con il pulsante destro del mouse sul file di progetto come mostrato di seguito
- In questa fase,
- Fare clic con il tasto destro sul file di progetto
- Scegli l'opzione "Aggiungi->nuovo elemento".
Nella finestra di dialogo che appare, è necessario eseguire le seguenti operazioni:
- Scegli l'opzione del servizio WCF (abilitato per Ajax): scegli un file di questo tipo, causa il file Visual studio per aggiungere del codice di base che aiuta a creare un servizio web RESTful. WCF sta per Windows Comunicazione Foundation. WCF è una libreria per applicazioni di varie piattaforme o della stessa piattaforma per comunicare su vari protocolli come TCP, HTTP, HTTPS. Ajax è fondamentalmente asincrono JavaCopione e XML. AJAX consente alle pagine web di essere aggiornate in modo asincrono scambiando piccole quantità di dati con il server dietro le quinte.
- Quindi dai un nome al servizio che nel nostro caso è TutorialService.
- Infine, fai clic sul pulsante Aggiungi per aggiungere il servizio alla soluzione.
Passo 4) Effettua una configurazione.
Il passaggio successivo consiste nell'effettuare effettivamente una modifica alla configurazione per consentire a questo progetto di completare il lavoro con i servizi Web RESTful. Ciò richiede di apportare una modifica al file chiamato web.config. Questo file viene visualizzato nella stessa finestra del file di progetto del servizio Web. Il file Web.config contiene tutte le configurazioni che fanno funzionare l'applicazione web come dovrebbe. La modifica apportata consente effettivamente all'applicazione di inviare e ricevere dati come un puro servizio web RESTful.
- Fare clic sul file Web.config per aprire il codice
- Trova la linea
- Cambia la riga in
Passo 5) Aggiungi il nostro codice per l'implementazione.
Il passaggio successivo in questo tutorial sull'API RESTful è aggiungere il nostro codice per l'implementazione. Tutto il codice indicato di seguito deve essere scritto nel file TutorialService.svc
- Il primo bit consiste nell'aggiungere il codice per rappresentare i nostri dati che verranno utilizzati nel nostro programma. Quindi avremo un elenco di variabili stringa con valori di "Array", "Queues" e "Stacks". Questo rappresenterà il nome dei tutorial disponibili tramite il nostro servizio web di hosting.
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"});
Passo 6) Definire il codice per il nostro metodo GET.
Successivamente definiremo il codice per il nostro metodo GET. Questo codice risiederà anche nello stesso file TutorialService.svc. Questo codice verrà eseguito ogni volta che chiamiamo il servizio dal nostro browser.
Il metodo seguente verrà utilizzato per soddisfare lo scenario indicato di seguito
- Se un utente desidera un elenco di tutti i tutorial disponibili, è necessario scrivere il codice seguente per ottenere ciò.
[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; }
Spiegazione del codice: -
- La prima riga di codice è la più importante. Viene utilizzato per definire come possiamo chiamare questo metodo tramite un URL. Quindi, se il collegamento al nostro servizio web è http://localhost:52645/TutorialService.svc e se aggiungiamo "/Tutorial" all'URL come http://localhost:52645/TutorialService.svc/Tutorial , verrà richiamato il codice precedente. L'attributo di "WebGet" è un parametro che consente a questo metodo di essere un metodo RESTful in modo che possa essere invocato tramite il verbo GET.
- Questa sezione di codice viene utilizzata per esaminare il nostro elenco di stringhe nella variabile 'lst' e restituirle tutte al programma chiamante.
Passo 7) Restituisce l'output.
Il codice seguente garantisce che se viene effettuata una chiamata GET al servizio Tutorial con un ID Tutorial, restituirà il nome Tutorial corrispondente in base all'ID Tutorial.
[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")] public String GetTutorialbyID(String Tutorialid) { int pid; Int32.TryParse(Tutorialid, out pid); return lst[pid]; }
Spiegazione del codice: -
- La prima riga di codice è la più importante. Viene utilizzato per definire come possiamo chiamare questo metodo tramite un URL. Quindi, se il collegamento al nostro servizio web è http://localhost:52645/TutorialService.svc e se aggiungiamo "/Tutorial/{Tutorialid}" all'URL, saremo in grado di chiamare il servizio web come http://localhost:52645/TutorialService.svc/Tutorial/1 come esempio. Il servizio Web dovrà quindi restituire il nome del Tutorial con ID Tutorial#1.
- Questa sezione di codice viene utilizzata per restituire il "nome del tutorial" con l'ID del tutorial passato al metodo web.
- Per impostazione predefinita, ciò che deve essere ricordato è che tutto ciò che viene passato all'URL nel browser è una stringa.
- Ma devi ricordare che l'indice della nostra lista deve essere un numero intero, quindi stiamo aggiungendo il codice necessario per convertire prima il Tutorialid in un numero intero e poi usarlo per accedere alla posizione dell'indice nella nostra lista e
- Quindi restituire di conseguenza il valore al programma chiamante.
Passo 8) Scrivi il codice per il metodo POST.
Il prossimo passo è scrivere il codice per il nostro metodo POST. Questo metodo verrà invocato ogni volta che vogliamo aggiungere un valore stringa alla nostra lista di Tutorial tramite il metodo POST. Ad esempio, se desideri aggiungere il nome del tutorial "Test del software", dovrai utilizzare il metodo POST.
Spiegazione del codice: -
- La prima riga è l'attributo "WebInvoke" che è stato allegato al nostro metodo. Ciò consente di richiamare il metodo tramite la chiamata POST. Gli attributi RequestFormat e ResponseFormat devono essere menzionati come JSON, poiché quando si inseriscono valori in un servizio Web RESTFul, i valori devono essere in questo formato.
- La seconda riga di codice viene utilizzata per aggiungere il valore della stringa passato tramite la chiamata POST al nostro elenco esistente di stringhe Tutorial.
Passo 9) Aggiungi un metodo per gestire l'operazione DELETE.
Infine aggiungeremo il nostro metodo per gestire l'operazione DELETE. Questo metodo verrà invocato ogni volta che vogliamo eliminare un valore di stringa esistente dal nostro elenco di Tutorial tramite il metodo 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); 1st.RemoveAt(pid); }
Spiegazione del codice: -
- La prima riga è l'attributo "WebInvoke" che è stato allegato al nostro metodo. Ciò consente di richiamare il metodo tramite la chiamata POST. Gli attributi RequestFormat e ResponseFormat devono essere menzionati come JSON, poiché quando si inseriscono valori su un servizio Web RESTFul, i valori devono essere in questo formato. Tieni presente che il parametro Method è impostato su "DELETE". Ciò significa che ogni volta che emettiamo il verbo DELETE, verrà richiamato questo metodo.
- La seconda riga di codice viene utilizzata per prendere il Tutorialid inviato tramite la chiamata DELETE e successivamente eliminare quell'id dalla nostra lista. (IL Int32 la funzione nel codice viene utilizzata per convertire l'ID del tutorial da una variabile stringa a un numero intero).
Esecuzione del tuo primo servizio web Restful
Ora che abbiamo creato il nostro intero servizio web nella sezione precedente. Vediamo come eseguire il servizio Tutorial in modo che possa essere invocato da qualsiasi client.
Per eseguire il servizio web, seguire i passaggi seguenti
Passo 1) Fare clic con il tasto destro sul file di progetto – Webservice.REST
Passo 2) Scegli l'opzione di menu 'Imposta come progetto di avvio'. Ciò garantirà che questo progetto venga eseguito quando Visual Studio esegue l'intera soluzione
Passo 3) Il passo successivo è eseguire il progetto stesso. Ora, a seconda del browser predefinito installato sul sistema, il nome del browser appropriato verrà visualizzato accanto al pulsante di esecuzione in Visual Studio. Nel nostro caso, abbiamo Google Chrome che si presenta. Basta cliccare su questo pulsante.
Produzione:-
Una volta eseguito il progetto, puoi accedere alla sezione TutorialService.svc/Tutorial e otterrai l'output seguente.
Nell'output sopra,
- Puoi vedere che il browser sta invocando il verbo "GET" ed eseguendo il metodo "GetAllTutorial" nel servizio web. Questo modulo viene utilizzato per visualizzare tutti i Tutorial esposti dal nostro servizio web.
Testare il tuo primo servizio web Restful
Nella sezione precedente, abbiamo già visto come utilizzare il browser per eseguire il verbo 'GET' e richiamare il 'GetAllTutorial.'
- Utilizziamo ora il browser per eseguire il seguente scenario d'uso.
GET Tutorial/Tutorialid – Quando un client richiama questa API Restful, gli verrà assegnato il nome del Tutorial in base al Tutorialid inviato dal client
Nel tuo browser, aggiungi la stringa /1 dopo la parola Tutorial nell'URL. Se premi il pulsante Invio, otterrai l'output seguente
Ora vedrai l'output di Queues che in realtà corrisponde al numero 1 nel nostro elenco di Stringhe Tutorial. Ciò significa che il metodo 'GetTutorialbyID' viene ora richiamato dal nostro servizio Web. Mostra inoltre che il valore 1 viene passato con successo tramite il browser al nostro servizio Web e al nostro metodo ed è per questo che otteniamo il valore corrispondente corretto di "Code" nel browser.
- Successivamente utilizziamo il nostro servizio Web eseguendo lo scenario seguente. Per questo, è necessario installare lo strumento chiamato “Fiddler" che è uno strumento scaricabile gratuitamente dal sito.
POST Tutorial/Tutorialname – Quando un client richiama questa API Restful, il client invierà una richiesta per inserire un Tutorialname. Il servizio Web aggiungerà quindi il nome del tutorial inviato alla raccolta.
Eseguire lo strumento Fiddler ed eseguire i passaggi seguenti;
- Vai alla sezione compositori. Viene utilizzato per creare richieste che possono essere inviate a qualsiasi applicazione web.
- Assicurati che il tipo di richiesta sia "POST" e che venga raggiunto l'URL corretto, che nel nostro caso dovrebbe essere http://localhost:52645/TutorialService.svc/Tutorial
- Assicurati che il tipo di contenuto sia contrassegnato come application/json. Ricorda che il nostro metodo di richiesta POST nel nostro servizio Web accetta solo dati in stile json, quindi dobbiamo assicurarci che ciò sia specificato quando inviamo una richiesta alla nostra applicazione.
- Infine, dobbiamo inserire i nostri dati. Ricorda che il nostro metodo per POST accetta un parametro chiamato 'str.' Quindi qui stiamo specificando che vogliamo aggiungere un valore chiamato "Alberi" alla nostra raccolta di nomi di Tutorial e assicurarci che sia taggato con il nome della variabile str.
Infine, basta cliccare sul pulsante Execute in fiddler. Questo invierà una richiesta al servizio web per inviare tramite POST i dati "Trees" al nostro servizio web.
Ora, quando andiamo all'URL del Tutorial per mostrare tutte le stringhe nel nostro elenco Tutorial, vedrai che è presente anche il valore di "Alberi". Ciò dimostra che la richiesta POST al servizio web è stata eseguita con successo e che è stata aggiunta con successo al nostro Elenco tutorial.
- Ora consumiamo il nostro servizio web eseguendo lo scenario seguente. Anche per questo dobbiamo usare lo strumento Fiddler
DELETE Tutorial/Tutorialid: quando un client richiama questa API Restful, il client invierà una richiesta per eliminare un nome Tutorial in base al Tutorialid. Il servizio Web eliminerà quindi il nome del tutorial inviato dalla raccolta.
Eseguire lo strumento Fiddler ed eseguire i passaggi seguenti
- Vai alla sezione compositori. Viene utilizzato per creare richieste che possono essere inviate a qualsiasi applicazione web.
- Assicurati che il tipo di richiesta sia "DELETE" e che venga raggiunto l'URL corretto, che nel nostro caso dovrebbe essere http://localhost:52645/TutorialService.svc/Tutorial. Assicurarsi che l'ID utilizzato per eliminare una stringa nell'elenco venga inviato tramite l'URL come parametro. Nel nostro esempio REST, stiamo inviando 1, quindi questo eliminerà 2nd elemento della nostra collezione che è "Queues".
Infine, basta cliccare sul pulsante Execute in Fiddler. Questo invierà una richiesta al servizio web per ELIMINARE i dati "Queues" al nostro servizio web.
Ora, quando andiamo all'URL del Tutorial per mostrare tutte le stringhe nel nostro elenco Tutorial, noterai che il valore di "Code" non è più presente.
Ciò dimostra che la richiesta DELETE al servizio web è stata eseguita correttamente. L'elemento all'indice numero 1 nel nostro elenco di stringhe Tutorial è stato eliminato correttamente.
Sintesi
- REST sta per REpresentational State Transfer. REST viene utilizzato per creare servizi Web di natura leggera, manutenibile e scalabile.
- Sempre più applicazioni si stanno spostando verso l'architettura Restful. Questo perché ci sono molte persone che ora usano dispositivi mobili e una più ampia varietà di applicazioni si sta spostando verso il cloud.
- Gli aspetti principali di REST sono le risorse che risiedono sul server e i verbi GET, POST, PUT e DELETE, che possono essere utilizzati per lavorare con queste risorse.
- Visual Studio e .Net possono essere utilizzati per creare servizi Web RESTful.
- Quando Testing Per i servizi Web per POST e PUT, è necessario utilizzare un altro strumento denominato Fiddler, che può essere utilizzato per inviare la richiesta POST e PUT al server.