Che cosa sono i servizi Web riposanti?
Restful Web Services è un servizio leggero, manutenibile e scalabile basato sull'architettura REST. Restful Web Service, esponi 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.
In questo tutorial sull'API REST imparerai:
- Elementi chiave RESTful
- Metodi riposanti
- Perché riposante
- Architettura riposante
- Principi e vincoli di riposo
- Crea il tuo primo servizio web riposante in ASP.NET
- Esecuzione del tuo primo servizio web riposante
- Testare il tuo primo servizio web riposante
Elementi chiave RESTful
I servizi Web REST hanno davvero fatto molta strada sin dal loro inizio. Nel 2002, il consorzio Web aveva rilasciato la definizione di servizi web WSDL e SOAP. Questo 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 molto popolare. Ed è utilizzato da molti dei popolari siti Web in tutto il mondo che includono 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 o immagini o video importanti. Tutti questi sono un esempio di risorse. Se un client, ad esempio un browser web ha bisogno 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 abbia record di diversi dipendenti. Supponiamo che l'URL dell'applicazione web sia http://demo.guru99.com . Ora per accedere a una risorsa record del dipendente tramite i servizi REST, si può emettere il comando http://demo.guru99.com/employee/1 - Questo comando dice al server web di fornire i dettagli del dipendente il cui numero di dipendente è 1.
-
Verbi di richiesta : descrivono cosa si desidera 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, incluse cose come POST, PUT e DELETE. Quindi, nel caso dell'esempio http://demo.guru99.com/employee/1 , il browser web sta effettivamente emettendo un GET Verb perché vuole ottenere i dettagli del record del dipendente.
-
Intestazioni della richiesta : istruzioni aggiuntive inviate con la richiesta. Questi potrebbero definire il tipo di risposta richiesta oi dettagli dell'autorizzazione.
-
Corpo della 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 comunica effettivamente ai servizi Web REST che desidera aggiungere una risorsa al server. Quindi, il corpo della richiesta avrebbe i dettagli della risorsa che deve essere aggiunta al server.
-
Corpo della risposta : questo è il corpo principale della risposta. Quindi nel nostro esempio di API RESTful, se dovessimo interrogare il server web tramite la richiesta http://demo.guru99.com/employee/1 , il server web potrebbe restituire un documento XML con tutti i dettagli del dipendente nella risposta Corpo.
-
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 viene normalmente restituito se non ci sono 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 di API REST di cosa significherebbero.
Supponiamo di avere un servizio Web RESTful definito nella posizione. http://demo.guru99.com/employee . Quando il client effettua una richiesta a questo servizio Web, può specificare uno qualsiasi dei normali verbi HTTP di GET, POST, DELETE e PUT. Di seguito è riportato cosa accadrebbe se i rispettivi verbi fossero inviati dal client.
- POST - Questo verrebbe utilizzato per creare un nuovo dipendente utilizzando il servizio web RESTful
- OTTIENI : viene utilizzato per ottenere un elenco di tutti i dipendenti che utilizzano il servizio Web RESTful
- PUT : viene utilizzato per aggiornare tutti i dipendenti che utilizzano il servizio web RESTful
- ELIMINA : verrà utilizzato per eliminare tutti i dipendenti che utilizzano i servizi RESTful
Diamo uno sguardo dal punto di vista di un singolo record. Supponiamo che ci fosse un record del dipendente con il numero del dipendente 1.
Le seguenti azioni avrebbero i loro rispettivi significati.
- POST - Questo non sarebbe applicabile poiché stiamo recuperando i dati del dipendente 1 che è già stato creato.
- OTTIENI - Questo verrebbe utilizzato per ottenere i dettagli del dipendente con Dipendente n. 1 utilizzando il servizio web RESTful
- PUT - Questo verrebbe utilizzato per aggiornare i dettagli del dipendente con Dipendente n. 1 utilizzando il servizio web RESTful
- ELIMINA : viene utilizzato per eliminare i dettagli del dipendente con Dipendente n. 1
Perché riposante
Restful per lo più è diventato popolare per i seguenti motivi:
- Linguaggi e ambienti eterogenei - Questo è uno dei motivi fondamentali che è lo stesso che abbiamo visto anche per SOAP.
- Consente alle applicazioni web costruite su vari linguaggi di programmazione di comunicare tra loro
- Con l'aiuto dei servizi Restful, queste applicazioni web possono risiedere in ambienti diversi, alcune potrebbero essere su Windows e altre su Linux.
Ma alla fine, non importa quale sia l'ambiente, il risultato finale dovrebbe essere sempre lo stesso che dovrebbero essere in grado di parlare tra loro. I servizi Web riposanti offrono questa flessibilità alle applicazioni costruite su vari linguaggi di programmazione e piattaforme per dialogare tra loro.
L'immagine sotto mostra un esempio di un'applicazione web che ha l'obbligo di parlare con altre applicazioni come Facebook, Twitter e Google.
Ora, se un'applicazione client dovesse funzionare con siti come Facebook, Twitter, ecc., Probabilmente dovrebbero sapere qual è la lingua su cui sono costruiti Facebook, Google e Twitter, e anche su quale piattaforma sono costruiti.
Sulla base di questo, possiamo scrivere il codice di interfacciamento per la nostra applicazione web, ma questo potrebbe rivelarsi un incubo.
Facebook, Twitter e Google espongono le loro funzionalità sotto forma di servizi web riposanti. Ciò consente a qualsiasi applicazione client di chiamare questi servizi Web tramite REST.
- L'evento dei dispositivi - Al giorno d'oggi, tutto deve funzionare sui dispositivi mobili, che si tratti del dispositivo mobile, dei notebook o persino dei sistemi per auto.
Riuscite a immaginare la quantità di sforzo per provare e codificare le applicazioni su questi dispositivi per dialogare con le normali applicazioni web? Anche in questo caso le API Restful possono semplificare questo lavoro perché, come menzionato al punto n. 1, non è davvero necessario sapere qual è il livello sottostante per il dispositivo.
- Finalmente è l'evento del Cloud: tutto si sta spostando nel cloud. Le applicazioni si stanno lentamente spostando verso sistemi basati su cloud come Azure o Amazon. Azure e Amazon forniscono molte API basate sull'architettura Restful. Quindi, ora le applicazioni devono essere sviluppate in modo tale da renderle compatibili con il Cloud. Quindi, poiché tutte le architetture basate su Cloud funzionano secondo il principio REST, ha più senso che i servizi Web siano programmati sull'architettura basata sui servizi REST per utilizzare al meglio i servizi basati su Cloud.
Architettura riposante
Un'applicazione o un'architettura considerata RESTful o in stile REST ha le seguenti caratteristiche
- Lo stato e la funzionalità sono suddivisi in risorse distribuite: ciò significa che ogni risorsa deve 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 inviare la richiesta GET e ottenere il file. Se vogliono mettere un file sul server, dovrebbero essere in grado di emettere la richiesta POST o PUT. E infine, se volevano eliminare un file dal server, emettono la richiesta DELETE.
- L'architettura è client / server, senza stato, a più livelli 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 il browser Web.
- Stateless 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 di 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. Dopo di che sarebbe necessario vedere se la risorsa è stata effettivamente eliminata.
Principi e vincoli RESTFul
L'architettura REST si basa su alcune caratteristiche che vengono elaborate di seguito. Qualsiasi servizio web RESTful deve rispettare le seguenti caratteristiche per poter essere chiamato RESTful. Queste caratteristiche sono note anche come principi di progettazione che devono essere seguiti quando si lavora con servizi basati su RESTful.
- Client-Server RESTFul
Questo è il requisito fondamentale di un'architettura basata su REST. Significa che il server avrà un servizio web RESTful che fornirà le funzionalità richieste al client. Il client invia una richiesta al servizio web sul server. Il server rifiuterà la richiesta o accetterà e fornirà una risposta adeguata al client.
- Apolidi
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 mantenere alcun tipo di informazione tra le richieste del client. È una sequenza domanda-risposta molto semplice e indipendente. Il client fa una domanda, il server risponde in modo appropriato. Il cliente farà un'altra domanda. Il server non ricorderà lo scenario precedente domanda-risposta e dovrà rispondere alla nuova domanda in modo indipendente.
- Cache
Il concetto di cache è quello di aiutare con il problema degli apolidi che è stato descritto nell'ultimo punto. Poiché ogni richiesta del client del server è di natura indipendente, a volte il client potrebbe chiedere di nuovo 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. Quindi, 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 in avanti e indietro dal client al server.
- Sistema a strati
Il concetto di un sistema a più 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 extra creato con il quale il client potrebbe 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 il client e il server.
- Interfaccia / Contratto Uniforme
Questa è la tecnica alla base del funzionamento dei servizi Web RESTful. RESTful funziona fondamentalmente sul livello Web HTTP e utilizza i seguenti verbi chiave per lavorare con le risorse sul server
- POST - Per creare una risorsa sul server
- OTTIENI - Per recuperare una risorsa dal server
- PUT - Per modificare lo stato di una risorsa o per aggiornarla
- DELETE - Per rimuovere o eliminare una risorsa dal server
Crea il tuo primo servizio web riposante in ASP.NET
Ora, in questo tutorial sull'API REST, impareremo come creare un servizio web riposante 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 utilizzando Visual Studio. Nel nostro esempio, per i servizi web Restful emuleremo il seguente esempio di servizio REST.
Avremo un servizio web riposante che funzionerà sul set di dati di seguito.
Il set di dati riportato di seguito rappresenta un esempio di API REST di avere un'azienda che espone i tutorial che hanno basato sul Tutorialid.
Tutorialid | TutorialName |
0 | Array |
1 | Code |
2 | Pile |
Nel nostro esempio di tutorial sull'API REST, implementeremo i seguenti Restful Verbs.
- OTTIENI Tutorial - Quando un client richiama questa API riposante, gli verrà fornito l'intero set di tutorial disponibili dal servizio web.
- GET Tutorial / Tutorialid - Quando un client richiama questa API Restful, gli verrà assegnato il nome del Tutorial basato sull'ID Tutorial inviato dal client.
- POST Tutorial / Tutorialname - Quando un client richiama questa Restful API, il client invia una richiesta per inserire un Tutorialname. Il servizio Web aggiungerà quindi il nome del Tutorial inviato alla raccolta.
- DELETE Tutorial / Tutorialid- Quando un client richiama questa API Restful, il client invierà una richiesta per eliminare un Tutorialname basato sul 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.
Passaggio 1) Il primo passaggio consiste nel creare un'applicazione Web Asp.Net vuota. Da Visual Studio 2013, fare clic sull'opzione di menu File-> Nuovo progetto.
Dopo aver fatto clic sull'opzione Nuovo progetto, Visual Studio ti fornirà un'altra finestra di dialogo per la scelta del tipo di progetto e per fornire i dettagli necessari del progetto. Ciò viene spiegato nel passaggio successivo di questo tutorial sull'API RESTful
Passaggio 2) In questo passaggio,
- Assicurarsi di scegliere prima il modello Web C # dei servizi Web RESTful dell'applicazione Web ASP.NET. Il progetto deve essere di questo tipo per creare un progetto di servizi web. Scegliendo queste opzioni, Visual Studio eseguirà i passaggi necessari per aggiungere i file richiesti che sono 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 terminato, vedrai il file di progetto creato in Esplora soluzioni in Visual Studio 2013.
Passaggio 3) Il passaggio successivo consiste nel creare il file del servizio Web che avrà il servizio Web RESTful
- Primo clic con il pulsante destro del mouse sul file di progetto come mostrato di seguito
- In questo passaggio,
- 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, fa sì che lo studio Visual aggiunga del codice di base che aiuta a creare un servizio web RESTful. WCF è l'acronimo di Windows Communication Foundation. WCF è una libreria per applicazioni di varie piattaforme o la stessa piattaforma per comunicare sui vari protocolli come TCP, HTTP, HTTPS. Ajax è fondamentalmente JavaScript e XML asincrono. AJAX consente di aggiornare le pagine Web in modo asincrono scambiando piccole quantità di dati con il server dietro le quinte.
- Quindi dai un nome per il servizio che è TutorialService nel nostro caso.
- Infine, fare clic sul pulsante Aggiungi per aggiungere il servizio alla soluzione.
Passaggio 4) Il passaggio successivo consiste nell'effettuare 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 denominato 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 per la riga
- Cambia la riga in
Passaggio 5) Il passaggio successivo in questo tutorial sull'API RESTful consiste nell'aggiungere il nostro codice per l'implementazione. Tutto il codice indicato di seguito deve essere scritto nel file TutorialService.svc
- Il primo bit è aggiungere il codice per rappresentare i nostri dati che verranno utilizzati nel nostro programma. Quindi avremo un elenco di variabili stringa con valori di "Arrays", "Queues" e "Stacks". Questo rappresenterà il nome del tutorial disponibile tramite il nostro servizio web di hosting.
namespace Webservice.REST{[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowedpublic class TutorialService{private static Listlst = new List (new String[] {"Arrays","Queues","Stacks"});
Passaggio 6) 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 chiameremo 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 , il codice sopra sarà invocato. L'attributo di "WebGet" è un parametro che consente a questo metodo di essere un metodo RESTful in modo che possa essere richiamato tramite il verbo GET.
- Questa sezione di codice viene utilizzata per scorrere il nostro elenco di stringhe nella variabile "lst" e restituirle tutte al programma chiamante.
Passaggio 7) Il codice seguente garantisce che se viene effettuata una chiamata GET al servizio Tutorial con un ID Tutorial, restituirà il Nome Tutorial corrispondente basato sull'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, potremmo chiamare il servizio web come http: //localhost:52645/TutorialService.svc/Tutorial/1 come esempio. Il servizio web dovrebbe quindi restituire il nome del tutorial che aveva l'ID tutorial n. 1.
- Questa sezione di codice viene utilizzata per restituire il "nome del tutorial" che ha 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 del nostro elenco deve essere un numero intero, quindi stiamo aggiungendo il codice necessario per convertire prima il Tutorialid in un numero intero e quindi utilizzarlo per accedere alla posizione dell'indice nel nostro elenco e
- Quindi restituire il valore al programma chiamante di conseguenza.
Passaggio 8) Il passaggio successivo è scrivere il codice per il nostro metodo POST. Questo metodo verrà richiamato ogni volta che vogliamo aggiungere un valore stringa al nostro elenco di tutorial tramite il metodo POST. Ad esempio, se si desidera aggiungere il nome del tutorial di "Software Testing", sarà necessario 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 inviano valori a un servizio Web RESTFul, i valori devono essere in questo formato.
- La seconda riga di codice viene utilizzata per aggiungere il valore di stringa passato tramite la chiamata POST al nostro elenco esistente di stringhe Tutorial.
Passaggio 9) Infine aggiungeremo il nostro metodo per gestire l'operazione DELETE. Questo metodo verrà richiamato ogni volta che vogliamo eliminare un valore di stringa esistente dal nostro elenco di tutorial tramite il metodo 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);}
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 inviano valori a un servizio Web RESTFul, i valori devono essere in questo formato. Notare 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. (La funzione Int32 nel codice viene utilizzata per convertire l'ID del tutorial da una variabile di stringa a un numero intero).
Esecuzione del tuo primo servizio web riposante
Ora che abbiamo creato il nostro intero servizio web nella sezione precedente. Vediamo come possiamo eseguire il servizio Tutorial in modo che possa essere richiamato da qualsiasi client.
Per eseguire il servizio Web, seguire i passaggi seguenti
Passaggio 1) Fare clic con il pulsante destro del mouse sul file di progetto - Webservice.REST
Passaggio 2) Scegliere l'opzione di menu "Imposta come progetto di avvio". Ciò garantirà che questo progetto venga eseguito quando Visual Studio esegue l'intera soluzione
Passaggio 3) Il passaggio successivo è eseguire il progetto stesso. Ora, a seconda del browser predefinito installato sul sistema, il nome del browser appropriato verrà visualizzato accanto al pulsante Esegui in Visual Studio. Nel nostro caso, abbiamo Google Chrome visualizzato. Basta fare clic su questo pulsante.
Produzione:-
Quando il progetto viene eseguito, puoi passare alla sezione TutorialService.svc / Tutorial e otterrai l'output seguente.
Nell'output sopra,
- Puoi vedere che il browser richiama il verbo "GET" ed esegue 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 riposante
Nella sezione precedente, abbiamo già visto come utilizzare il browser per eseguire il verbo "GET" e invocare "GetAllTutorial".
- Usiamo ora il browser per eseguire il seguente scenario di caso d'uso.
OTTIENI Tutorial / Tutorialid - Quando un client richiama questa API riposante, gli verrà assegnato il nome del Tutorial basato sull'ID Tutorial 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 corrisponde effettivamente al numero 1 nel nostro elenco di stringhe tutorial. Ciò significa che il metodo "GetTutorialbyID" viene ora richiamato dal nostro servizio Web. Mostra anche che il valore di 1 viene passato con successo tramite il browser al nostro servizio web e al nostro metodo ed è per questo che stiamo ottenendo il valore corrispondente corretto di "Queues" nel browser.
- Quindi 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 Restful API, il client invia una richiesta per inserire un Tutorialname. Il servizio Web aggiungerà quindi il nome del Tutorial inviato alla raccolta.
Esegui lo strumento Filddler ed esegui i passaggi seguenti;
- Vai alla sezione compositore. Viene utilizzato per creare richieste che possono essere inviate a qualsiasi Web
applicazione.
- 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 Content-Type 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 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 "Trees" alla nostra raccolta di nomi di tutorial e assicurarci che sia etichettato con il nome della variabile str.
Infine, fai clic sul pulsante Esegui in Fiddler. Questo invierà una richiesta al servizio web per POST dei dati "Alberi" al nostro servizio web.
Ora, quando passiamo all'URL del tutorial per mostrare tutte le stringhe nel nostro elenco dei tutorial, vedrai che è presente anche il valore di "Trees". Questo mostra che la richiesta POST al servizio web è stata eseguita con successo e che è stata aggiunta con successo al nostro elenco di tutorial.
- Quindi utilizziamo 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 Tutorialname basato sul Tutorialid. Il servizio Web eliminerà quindi il nome del tutorial inviato dalla raccolta.
Esegui lo strumento Filddler ed esegui i passaggi seguenti
- Vai alla sezione compositore. Viene utilizzato per creare richieste che possono essere inviate a qualsiasi Web
applicazione.
- 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 . Assicurati che l'id che viene utilizzato per eliminare una stringa nell'elenco inviato tramite l'URL come parametro. Nel nostro esempio REST, stiamo inviando 1 quindi questo cancellerà il 2 ° elemento nella nostra raccolta che è "Queues".
Infine, fai clic sul pulsante Esegui in Fiddler. Questo invierà una richiesta al servizio web per CANCELLARE i dati "Code" al nostro servizio web.
Ora, quando passiamo all'URL del tutorial per mostrare tutte le stringhe nel nostro elenco dei tutorial, noterai che il valore di "Queues" non è più presente.
Questo mostra che la richiesta DELETE al servizio web è stata eseguita con successo. L'elemento all'indice n. 1 nel nostro elenco di stringhe del tutorial è stato eliminato con successo.
Sommario
- REST sta per REpresentational State Transfer. REST viene utilizzato per creare servizi Web leggeri, gestibili e scalabili in natura.
- Sempre più applicazioni stanno passando all'architettura Restful. Questo perché molte persone ora utilizzano dispositivi mobili e una più ampia varietà di applicazioni che si spostano nel cloud.
- Gli aspetti principali di REST sono le risorse che risiedono sul server e i verbi di 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 riposanti.
- Quando si testano i servizi Web per POST e PUT, è necessario utilizzare un altro strumento chiamato fiddler che può essere utilizzato per inviare la richiesta POST e PUT al server.