Tutorial sui servizi web RESTful: esempio di API REST

⚡ Riepilogo intelligente

I servizi Web RESTful offrono un approccio leggero e senza stato per consentire alle applicazioni di scambiare dati tramite HTTP utilizzando verbi standard. Espongono le risorse attraverso un approccio pulito. URLConsente una comunicazione scalabile e indipendente dalla piattaforma tra client distribuiti, server, dispositivi mobili e moderne piattaforme cloud e di intelligenza artificiale.

  • 📊 Verbi principali: I metodi GET, POST, PUT e DELETE corrispondono direttamente alle operazioni di lettura, creazione, aggiornamento ed eliminazione eseguite sulle risorse del server.
  • 🧩 Elementi chiave: Risorse, verbi di richiesta, intestazioni, corpo della richiesta, corpo della risposta e codici di stato definiscono insieme ogni interazione REST.
  • 🌐 Architecnologia: REST segue un modello client-server che rimane stateless, a livelli e ottimizzato per la cache, garantendo richieste ripetute più veloci e affidabili.
  • ️ Implementazione ASP.NET con un modello di servizio WCF consente agli sviluppatori di esporre endpoint RESTful in Visual Studio con una configurazione minima.
  • 🧪 Test: I browser gestiscono le chiamate GET, mentre Fiddler or Postman Invia richieste POST, PUT e DELETE per la verifica.
  • 🔐 migliori pratiche: HTTPS, autenticazione tramite token, codici di stato significativi e versionati URLs mantengono le API REST di produzione sicure e gestibili.
  • 🤖 Integrazione AI: OpenAI, Anthropic e Google pubblicare API REST che alimentano chatbot, agenti autonomi e flussi di lavoro di apprendimento automatico.

Tutorial sui servizi Web RESTful

Che cosa sono i servizi Web restful?

Servizi Web riposanti Un servizio web RESTful è un servizio leggero, manutenibile e scalabile, basato sull'architettura REST. Un servizio web RESTful espone un'API della tua applicazione al client chiamante in modo sicuro, uniforme e senza stato. Il client chiamante può quindi eseguire operazioni predefinite utilizzando il servizio RESTful. Il protocollo sottostante per REST è HTTP e REST è l'acronimo di REpresentational State Transfer.

In parole semplici, REST definisce uno standard per la creazione, la lettura, l'aggiornamento e la cancellazione di risorse, come documenti, immagini o record di database, tramite il web. Poiché si basa sul protocollo HTTP standard, praticamente qualsiasi linguaggio di programmazione o dispositivo può utilizzare un servizio RESTful senza bisogno di strumenti specifici.

Perché utilizzare i servizi web RESTful?

Prima di addentrarci nei dettagli tecnici, è utile capire perché REST sia diventato così popolare. I servizi web RESTful hanno acquisito importanza per i seguenti motivi:

1. Lingue e ambienti eterogenei – Questa è una delle ragioni fondamentali, che è la stessa che abbiamo visto per SOAP come pure.

  • Consente alle applicazioni web, sviluppate con diversi 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 Windowse altri potrebbero essere su Linux.

In definitiva, a prescindere dall'ambiente, il risultato dovrebbe essere sempre lo stesso: le applicazioni devono essere in grado di comunicare tra loro. I servizi web RESTful offrono questa flessibilità alle applicazioni sviluppate con diversi linguaggi di programmazione e piattaforme.

L'immagine sottostante fornisce un esempio di un'applicazione web che ha il requisito di comunicare con altre applicazioni come Facebook, Twitter e Google.

Se un'applicazione client dovesse interagire con siti come Facebook e Twitter, gli sviluppatori avrebbero normalmente bisogno di sapere su quale linguaggio e piattaforma sono stati realizzati tali siti. In base a ciò, potrebbero scrivere il codice di interfaccia, ma questo approccio potrebbe rivelarsi un incubo in termini di manutenzione.

Invece Facebook, Twitter e Google Espongono le loro funzionalità sotto forma di servizi web RESTful. Ciò consente a qualsiasi applicazione client di richiamare questi servizi web tramite REST, indipendentemente dalla tecnologia sottostante.

Perché utilizzare i servizi web RESTful?

2. L'evento dei Dispositivi – Al giorno d’oggi bisogna sistemare tutto Mobile dispositivi, che si tratti di un telefono cellulare, un notebook o persino un sistema per auto.

Immaginate la quantità di lavoro necessaria per programmare applicazioni su questi dispositivi affinché possano comunicare con le normali applicazioni web. Anche in questo caso, le API RESTful semplificano il lavoro perché, come accennato al punto uno, non è necessario conoscere il livello sottostante del dispositivo.

3. L'evento della nuvola – Tutto si sta spostando sul cloud. Le applicazioni si stanno lentamente spostando verso sistemi basati sul cloud come Azure or Amazon. Azure and Amazon Offrono numerose API basate sull'architettura RESTful. Pertanto, le applicazioni devono ora essere sviluppate in modo da essere compatibili con il cloud. Poiché tutte le architetture basate sul cloud funzionano secondo il principio REST, è logico che i servizi web siano programmati su un'architettura basata su REST per sfruttare al meglio i servizi cloud.

Elementi chiave RESTful

I servizi web REST hanno fatto molta strada dalla loro nascita. Nel 2002, il Web Consortium ha pubblicato la definizione di servizi web WSDL e SOAP. Questo ha costituito lo standard per l'implementazione dei servizi web.

Nel 2004, il consorzio Web ha anche pubblicato la definizione di uno standard aggiuntivo chiamato RESTful. Negli ultimi anni, questo standard è diventato molto popolare ed è ora utilizzato da molti dei siti web più famosi al mondo, tra cui Facebook e Twitter.

REST è un modo per accedere alle risorse che si trovano in un ambiente specifico. Ad esempio, si potrebbe avere un server che ospita documenti, immagini o video importanti. Tutti questi sono esempi di risorse. Se un client, come un browser web, necessita di una di queste risorse, deve inviare una richiesta al server. I servizi REST definiscono un modo standard per accedere a queste risorse.

Gli elementi chiave di un'implementazione RESTful sono i seguenti:

  1. Risorse – Il primo elemento chiave è la risorsa stessa. Supponiamo che un'applicazione web su un server abbia i record di diversi dipendenti. Supponiamo che URL dell'applicazione web è https://demo.guru99.comOra, per accedere a una risorsa di record di dipendente tramite servizi REST, è possibile emettere il comando https://demo.guru99.com/employee/1Questo comando indica al server web di fornire i dettagli del dipendente il cui numero di matricola è 1.
  2. Richiedi verbi – Questi descrivono cosa si desidera fare con la risorsa. Un browser invia un verbo GET per indicare all'endpoint che desidera ottenere i dati. Tuttavia, sono disponibili molti altri verbi, tra cui POST, PUT e DELETE. Quindi, nel caso dell'esempio https://demo.guru99.com/employee/1Il browser web sta effettivamente emettendo un verbo GET perché desidera ottenere i dettagli del record del dipendente.
  3. Richiedi intestazioni – Si tratta di istruzioni aggiuntive inviate insieme alla richiesta. Possono definire il tipo di risposta richiesta o i dettagli relativi all'autorizzazione.
  4. Ente di richiesta – Questi sono i dati inviati con la richiesta. I dati vengono normalmente inviati nel corpo della richiesta quando si effettua una richiesta POST al servizio web REST. In una chiamata POST, il client comunica al servizio web REST che desidera aggiungere una risorsa al server. Pertanto, il corpo della richiesta conterrà i dettagli della risorsa da aggiungere.
  5. Corpo di risposta – Questo è il corpo principale della risposta. Quindi, nel nostro esempio di API RESTful, se dovessimo interrogare il server web tramite la richiesta https://demo.guru99.com/employee/1Il server web potrebbe restituire un documento XML contenente tutti i dettagli del dipendente nel corpo della risposta.
  6. Codici di stato della risposta – Questi sono i codici generici restituiti insieme alla risposta dal server web. Un esempio è il codice 200, che viene normalmente restituito quando non si verifica alcun errore durante la risposta al client.

Metodi riposanti

Il diagramma seguente mostra la maggior parte dei verbi (POST, GET, PUT e DELETE) e un esempio di API REST che illustra il loro significato.

Supponiamo di avere un servizio web RESTful definito nella posizione https://demo.guru99.com/employeeQuando il client effettua una richiesta a questo servizio web, può specificare uno qualsiasi dei verbi HTTP standard: GET, POST, DELETE e PUT. Di seguito viene illustrato cosa accadrebbe se il client inviasse i rispettivi verbi.

  1. POST – Questo verrebbe utilizzato per creare un nuovo dipendente tramite il servizio web RESTful.
  2. GET – Questo verrebbe utilizzato per ottenere un elenco di tutti i dipendenti che utilizzano il servizio web RESTful.
  3. PUT – Questo verrebbe utilizzato per aggiornare tutti i dipendenti tramite il servizio web RESTful.
  4. DELETE – Questo verrebbe utilizzato per eliminare tutti i dipendenti che utilizzano il servizio RESTful.

Ora consideriamo la situazione dal punto di vista di un singolo record. Ipotizziamo che esista un record di dipendente con il numero di dipendente 1. Le seguenti azioni avrebbero i rispettivi significati.

  1. POST – Questa opzione non è applicabile, poiché stiamo recuperando i dati del dipendente 1, che è già stato creato.
  2. GET – Questo verrebbe utilizzato per ottenere i dettagli del dipendente con il numero 1 tramite il servizio web RESTful.
  3. PUT – Questo verrebbe utilizzato per aggiornare i dettagli del dipendente con il numero 1 tramite il servizio web RESTful.
  4. DELETE – Questa funzione viene utilizzata per eliminare i dati del dipendente con il numero 1.

Metodi riposanti

Riposante Architectura

Un'applicazione o un'architettura considerata RESTful o in stile REST presenta 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 GET, POST, PUT o DELETE. Quindi, se qualcuno volesse scaricare un file da un server, dovrebbe essere in grado di inviare una richiesta GET e ottenere il file. Se volesse caricare un file sul server, dovrebbe essere in grado di inviare una richiesta POST o PUT. Infine, se volesse eliminare un file dal server, potrebbe inviare una richiesta DELETE.

2. L'architettura è client/server, stateless, a 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 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 assicurarsi che la risorsa venga eliminata, è necessario inviare una richiesta GET. La richiesta GET serve innanzitutto a recuperare tutte le risorse presenti sul server, dopodiché è necessario verificare se la risorsa è stata effettivamente eliminata.

Principi e vincoli RESTFul

L'architettura REST si basa su alcune caratteristiche, che vengono illustrate di seguito. Qualsiasi servizio web RESTful deve rispettare le caratteristiche elencate di seguito per poter essere definito tale. Queste caratteristiche sono anche note come principi di progettazione che devono essere seguiti quando si lavora con servizi basati su RESTful.

  1. Client-server RESTful

    Principio client-server RESTful

Questo è il requisito fondamentale di un'architettura basata su REST. Significa che il server disporrà di un servizio web RESTful che fornirà al client le funzionalità richieste. Il client invia una richiesta al servizio web sul server. Il server, a sua volta, può rifiutare la richiesta oppure accettarla e fornire una risposta adeguata al client.

  1. apolide

Il concetto di "stateless" (senza stato) implica che spetti al client garantire che tutte le informazioni necessarie vengano fornite al server. Ciò è indispensabile affinché il server possa elaborare la risposta in modo appropriato. Il server non deve conservare alcun tipo di informazione tra una richiesta e l'altra del client. Si tratta di una sequenza domanda-risposta molto semplice e indipendente. Il client pone una domanda e il server risponde in modo appropriato. Quando il client pone un'altra domanda, il server non ricorderà lo scenario domanda-risposta precedente e dovrà rispondere alla nuova domanda in modo indipendente.

  1. Cache

Principio della cache RESTful

Il concetto di cache aiuta a risolvere il problema dell'assenza di stato descritto nel punto precedente. Poiché ogni richiesta client-server è indipendente, a volte il client potrebbe richiedere nuovamente al server la stessa informazione, anche se l'ha già richiesta in passato. Questa richiesta verrà inviata al server, che fornirà una risposta, aumentando il traffico di rete. La cache è un concetto implementato sul client per memorizzare le richieste già inviate al server. Pertanto, se il client invia la stessa richiesta, invece di rivolgersi direttamente al server, accederà alla cache per recuperare le informazioni necessarie. Ciò riduce il traffico di rete in entrata e in uscita tra client e server.

  1. Sistema a strati

Il concetto di sistema a livelli prevede che qualsiasi livello aggiuntivo, come ad esempio un livello middleware, possa essere inserito tra il client e il server che ospita il servizio web RESTful. (Il livello middleware è dove viene implementata tutta la logica di business. Può trattarsi di un servizio aggiuntivo con cui il client interagisce prima di effettuare una chiamata al servizio web.) Tuttavia, l'introduzione di questo livello deve essere trasparente, in modo da non interferire con l'interazione tra client e server.

  1. Interfaccia/Conforme uniformetract

Questa è la tecnica di base su cui si fonda il funzionamento dei servizi web RESTful. RESTful opera essenzialmente a livello HTTP e utilizza i verbi chiave elencati di seguito per interagire 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 per aggiornarla.
  • CANCELLA – Per rimuovere o eliminare una risorsa dal server.

REST vs SOAP: Differenze chiave

Gli sviluppatori spesso mettono a confronto REST e SOAP nella progettazione di un servizio web. Entrambi consentono alle applicazioni distribuite di comunicare, ma differiscono nettamente nella filosofia. REST è uno stile architetturale che utilizza semplici verbi HTTP e formati leggeri come JSON, mentre SOAP è un protocollo rigoroso che si basa su buste XML e una convenzione formaletract. La tabella seguente riassume le distinzioni più importanti.

Aspetto REST SOAP
Tipo Archistile tecnico Protocollo rigoroso
Formato dei dati JSON, XML, testo semplice, HTML Solo XML
Trasporti Solo HTTP HTTP, SMTP, TCP e altri
Regione / Stato apolide Apolide o con stato
Cookie di prestazione Più veloce e più leggero Più pesante a causa del sovraccarico XML
migliori per API web, mobile e pubbliche Applicazioni aziendali che richiedono una sicurezza rigorosa

In pratica, REST è la scelta predefinita per le API web e mobile pubbliche perché è più veloce e più facile da utilizzare, mentre SOAP rimane utile per i sistemi aziendali che richiedono sicurezza integrata e controllo formale.tracts.

Crea il tuo primo servizio Web Restful in ASP.NET

In questo tutorial sulle API REST, impareremo come creare un servizio web RESTful in ASP.NET.

I servizi web possono essere creati in diversi linguaggi di programmazione e si possono utilizzare numerosi ambienti di sviluppo integrati per creare servizi basati su REST.

In questo esempio di API RESTful, creeremo la nostra applicazione REST in .NET utilizzando Visual Studio. Avremo un servizio web RESTful che opererà sul set di dati riportato di seguito.

L'insieme di dati riportato di seguito rappresenta un esempio di API REST di un'azienda che espone i tutorial disponibili in base al Tutorialid.

Tutorialid NomeTutorial
0 Array
1 code
2 Stacks

Nel nostro esempio di tutorial sulle API REST, implementeremo i verbi RESTful descritti di seguito.

  1. OTTIENI il tutorial – Quando un client richiama questa API RESTful, gli verrà fornito l'intero set di tutorial disponibili dal servizio web.
  2. OTTIENI Tutorial/Tutorialid – Quando un client richiama questa API RESTful, gli verrà assegnato il nome del tutorial in base al Tutorialid inviato dal client.
  3. POST Tutorial/Nome tutorial – Quando un client richiama questa API RESTful, invia una richiesta per inserire un nome di tutorial. Il servizio web aggiungerà quindi il nome del tutorial inviato alla raccolta.
  4. ELIMINA Tutorial/Tutorialid – Quando un client richiama questa API RESTful, invia una richiesta di eliminazione di un Tutorialname in base al Tutorialid. Il servizio web eliminerà quindi il nome del tutorial inviato dalla raccolta.

Seguiamo i passaggi seguenti per creare il nostro primo servizio web RESTful, che esegue l'implementazione descritta in precedenza.

Come creare il tuo primo servizio Web riposante

Passo 1) Crea un 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.

Crea un servizio Web riposante

Una volta cliccato sull'opzione "Nuovo progetto", Visual Studio visualizzerà un'altra finestra di dialogo per la scelta del tipo di progetto e l'inserimento dei dettagli necessari. Questo aspetto verrà spiegato nel passaggio successivo.

Passo 2) Inserisci il nome del progetto e la sua ubicazione.

  1. Assicurati di scegliere prima il C# Modello web dell'applicazione web ASP.NET. Il progetto deve essere di questo tipo per poter creare un progetto di servizi web. Scegliendo questa opzione, Visual Studio eseguirà i passaggi necessari per aggiungere i file richiesti per qualsiasi applicazione basata sul web.
  2. Assegna un nome al tuo progetto, che nel nostro caso è "Webservice.REST".
  3. Assicurati quindi di specificare la posizione in cui verranno archiviati i file del progetto.

Crea un servizio Web riposante

Una volta completata l'operazione, il file di progetto creato sarà visibile in Esplora soluzioni di Visual Studio 2013.

Crea un servizio Web riposante

Passo 3) Creare il file del servizio Web.
Il passo successivo consiste nel creare il file del servizio web che conterrà il servizio web RESTful.

  1. Innanzitutto, fai clic con il pulsante destro del mouse sul file di progetto, come mostrato di seguito.

Crea un servizio Web riposante

  1. In questa fase,
    1. Fai clic con il pulsante destro del mouse sul file di progetto.
    2. Seleziona l'opzione "Aggiungi -> Nuovo elemento".

Crea un servizio Web riposante

Nella finestra di dialogo che appare, è necessario eseguire le seguenti operazioni.

  1. Scegli l'opzione Servizio WCF (abilitato per Ajax). La scelta di un file di questo tipo fa sì che Visual Studio aggiunga del codice di base che ti aiuta a creare un servizio web RESTful. WCF sta per Windows Communication FoundationWCF è una libreria che permette ad applicazioni di varie piattaforme (o della stessa piattaforma) di comunicare tramite diversi protocolli come TCP, HTTP e HTTPS. Ajax è 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.
  2. Successivamente, assegna un nome al servizio, che nel nostro caso è TutorialService.
  3. Infine, fai clic sul pulsante Aggiungi per aggiungere il servizio alla soluzione.

Crea un servizio Web riposante

Passo 4) Effettua una configurazione.
Il passo successivo consiste nell'apportare una modifica alla configurazione per consentire a questo progetto di funzionare con i servizi web RESTful. Ciò richiede una modifica al file chiamato web.configQuesto file appare nella stessa finestra del file di progetto del servizio web. Il file Web.config contiene tutte le configurazioni necessarie al corretto funzionamento dell'applicazione web. La modifica apportata consente all'applicazione di inviare e ricevere dati come un servizio web RESTful puro.

  1. Fai clic sul file Web.config per aprire il codice.

Crea un servizio Web riposante

  1. Trova la linea .

Crea un servizio Web riposante

  1. Cambia la riga in .

Crea un servizio Web riposante

Passo 5) Aggiungi il nostro codice per l'implementazione.
Il passo successivo consiste nell'aggiungere il nostro codice di implementazione. Tutto il codice seguente deve essere scritto nel file TutorialService.svc.

  1. Il primo passo consiste nell'aggiungere il codice per rappresentare i nostri dati, che verranno utilizzati nel programma. Avremo quindi un elenco di variabili stringa con i valori "Array", "Quee" e "Stack". Queste rappresenteranno i nomi dei tutorial disponibili tramite il nostro servizio di hosting web.

Crea un servizio Web riposante

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. Anche questo codice risiederà nello stesso file TutorialService.svc. Tale codice verrà eseguito ogni volta che richiameremo il servizio dal nostro browser.

Il metodo descritto di seguito verrà utilizzato per realizzare lo scenario riportato di seguito.

  • Se un utente desidera un elenco di tutti i tutorial disponibili, allora dovrà scrivere il codice seguente per raggiungere questo obiettivo.

Crea un servizio Web riposante

[WebGet(UriTemplate = "/Tutorial")]

public String GetAllTutorial()
{
    int count = lst.Count;
    String TutorialList = "";
    for (int i = 0; i < count; i++)
        TutorialList = TutorialList + lst[i] + ",";
    return TutorialList;
}

Code Spiegazione:-

  1. La prima riga di codice è la più importante. Viene utilizzata per definire come possiamo chiamare questo metodo tramite un URL. Quindi, se il collegamento al nostro servizio web è http://localhost:52645/TutorialService.svc e aggiungiamo '/Tutorial' al URL, come in http://localhost:52645/TutorialService.svc/Tutorial, verrà richiamato il codice sopra riportato. L'attributo 'WebGet' è un parametro che consente a questo metodo di essere un metodo RESTful in modo che possa essere richiamato tramite il verbo GET.
  2. 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, venga restituito il nome del tutorial corrispondente in base all'ID Tutorial.

Crea un servizio Web riposante

[WebGet(UriTemplate = "/Tutorial/{Tutorialid}")]

public String GetTutorialbyID(String Tutorialid)
{
    int pid;
    Int32.TryParse(Tutorialid, out pid);
    return lst[pid];
}

Code Spiegazione:-

  1. La prima riga di codice è la più importante. Definisce come possiamo chiamare questo metodo tramite un URL. Quindi, se il collegamento al nostro servizio web è http://localhost:52645/TutorialService.svc e aggiungiamo '/Tutorial/{Tutorialid}' al URL, saremmo in grado di chiamare il servizio web come http://localhost:52645/TutorialService.svc/Tutorial/1, ad esempio. Il servizio web restituirebbe quindi il nome del tutorial con ID Tutorial pari a 1.
  2. Questa sezione di codice viene utilizzata per restituire il nome del tutorial che ha l'ID del tutorial passato al metodo web.
  • Di default, ciò che bisogna ricordare è che qualsiasi cosa venga passata al URL nel browser è una stringa.
  • Bisogna però ricordare che l'indice della nostra lista deve essere un numero intero, quindi aggiungiamo il codice necessario per convertire prima il Tutorialid in un numero intero.
  • Lo utilizziamo quindi per accedere alla posizione dell'indice nella nostra lista e restituire il valore corrispondente al programma chiamante.

Passo 8) Scrivi il codice per il metodo POST.
Il passo successivo consiste nello scrivere il codice per il nostro metodo POST. Questo metodo verrà richiamato ogni volta che vorremo aggiungere un valore stringa al nostro elenco di tutorial tramite il metodo POST. Ad esempio, se volessimo aggiungere il tutorial "Software Testing", dovremmo utilizzare il metodo POST.

Crea un servizio Web riposante

[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "/Tutorial/{str}")]

public void AddTutorial(String str)
{
    lst.Add(str);
}

Code Spiegazione:-

  1. La prima riga è l'attributo 'WebInvoke', che è stato associato al nostro metodo. Questo permette di richiamare il metodo tramite una chiamata POST. Gli attributi RequestFormat e ResponseFormat devono essere specificati come JSON, poiché quando si inviano valori a un servizio web RESTful, i valori devono essere in questo formato.
  2. La seconda riga di codice viene utilizzata per aggiungere il valore stringa passato tramite la chiamata POST al nostro elenco esistente di stringhe dei tutorial.

Passo 9) Aggiungere un metodo per gestire l'operazione DELETE.
Infine, aggiungeremo il nostro metodo per gestire l'operazione DELETE. Questo metodo verrà richiamato ogni volta che vorremo eliminare un valore stringa esistente dal nostro elenco di tutorial tramite il metodo DELETE.

Crea un servizio Web riposante

[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json,
UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]

public void DeleteTutorial(String Tutorialid)
{
    int pid;
    Int32.TryParse(Tutorialid, out pid);
    lst.RemoveAt(pid);
}

Code Spiegazione:-

  1. La prima riga è l'attributo 'WebInvoke', che è stato associato al nostro metodo. Questo permette di richiamare il metodo tramite la chiamata DELETE. Gli attributi RequestFormat e ResponseFormat devono essere specificati come JSON, poiché i valori devono essere in questo formato. Si noti che il parametro Method è impostato su "DELETE". Ciò significa che ogni volta che viene utilizzato il comando DELETE, questo metodo verrà richiamato.
  2. 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 l'intero servizio web nella sezione precedente, vediamo come possiamo eseguire il servizio Tutorial in modo che possa essere richiamato da qualsiasi client.

Per avviare il servizio web, seguire i passaggi seguenti.

Passo 1) Fai clic con il pulsante destro del mouse sul file di progetto – Webservice.REST.

Esecuzione del servizio Web riposante

Passo 2) Seleziona l'opzione di menu "Imposta come progetto di avvio". In questo modo, il progetto verrà eseguito quando Visual Studio avvia l'intera soluzione.

Esecuzione del servizio Web riposante

Passo 3) Il passo successivo è eseguire il progetto stesso. A seconda del browser predefinito installato sul sistema, il nome del browser appropriato apparirà accanto al pulsante Esegui in Visual Studio. Nel nostro caso, abbiamo Google Chrome che si presenta. Basta cliccare su questo pulsante.

Esecuzione del servizio Web riposante

Produzione:-

Quando il progetto viene eseguito, è possibile accedere alla sezione TutorialService.svc/Tutorial e visualizzare l'output riportato di seguito.

Esecuzione del servizio Web riposante

Nell'output sopra,

  • Come si può vedere, 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 Restful

Nella sezione precedente abbiamo già visto come utilizzare il browser per eseguire il verbo 'GET' e richiamare 'GetAllTutorial'.

  1. 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 nel URLSe premi il tasto Invio, otterrai l'output seguente.

Test del servizio Web riposante

Ora vedrai l'output di "Queues", che corrisponde al numero 1 nel nostro elenco di stringhe dei tutorial. Ciò significa che il metodo 'GetTutorialbyID' viene ora richiamato dal nostro servizio web. Mostra anche che il valore 1 viene passato correttamente tramite il browser al nostro servizio web e al nostro metodo, ed è per questo che otteniamo il valore corrispondente corretto di "Queues" nel browser.

  1. Successivamente, utilizziamo il nostro servizio web eseguendo lo scenario seguente. Per fare ciò, è necessario installare lo strumento chiamato Fiddler, che è uno strumento scaricabile gratuitamente.

POST Tutorial/Tutorialname – Quando un client richiama questa API RESTful, invia una richiesta per inserire un Tutorialname. Il servizio web aggiungerà quindi il nome del tutorial inviato alla raccolta.

Corri il Fiddler Utilizzare lo strumento ed eseguire i passaggi seguenti.

  1. Vai alla sezione di composizione. Questa sezione serve per creare richieste che possono essere inviate a qualsiasi applicazione web.
  2. Assicurati che il tipo di richiesta sia "POST" e corretto URL viene colpito, il che nel nostro caso dovrebbe essere http://localhost:52645/TutorialService.svc/Tutorial.
  3. Assicurati che l'attributo Content-Type sia impostato su application/json. Ricorda che il metodo di richiesta POST del nostro servizio web accetta solo dati in formato JSON, quindi dobbiamo assicurarci che questo sia specificato quando inviamo una richiesta alla nostra applicazione.
  4. Infine, dobbiamo inserire i nostri dati. Ricorda che il nostro metodo POST accetta un parametro chiamato 'str'. Quindi, qui specifichiamo che vogliamo aggiungere un valore chiamato "Trees" alla nostra raccolta di nomi di tutorial e ci assicuriamo che sia associato al nome della variabile 'str'.

Infine, basta fare clic sul pulsante Esegui in FiddlerQuesto invierà una richiesta al servizio web per inviare tramite POST i dati "Alberi" al nostro servizio web.

Test del servizio Web riposante

Ora, quando navighiamo al Tutorial URL Per visualizzare tutte le stringhe presenti nel nostro elenco di tutorial, noterete che è presente anche il valore "Trees". Questo dimostra che la richiesta POST al servizio web è stata eseguita correttamente e che è stata aggiunta con successo al nostro elenco di tutorial.

Test del servizio Web riposante

  1. Successivamente, consumiamo il nostro servizio web eseguendo lo scenario seguente. Per questo, dobbiamo anche utilizzare il Fiddler strumento.

ELIMINA Tutorial/Tutorialid – Quando un client richiama questa API RESTful, invia una richiesta di eliminazione di un Tutorialname in base al Tutorialid. Il servizio web eliminerà quindi il Tutorialname inviato dalla raccolta.

Corri il Fiddler Utilizzare lo strumento ed eseguire i passaggi seguenti.

  1. Vai alla sezione di composizione. Questa sezione serve per creare richieste che possono essere inviate a qualsiasi applicazione web.
  2. Assicurati che il tipo di richiesta sia "DELETE" e corretto URL viene colpito, il 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 URL come parametro. Nel nostro esempio REST, stiamo inviando 1, quindi questo eliminerà il 2nd elemento della nostra collezione, che è "Code".

Infine, basta fare clic sul pulsante Esegui in FiddlerQuesto invierà una richiesta al servizio web per ELIMINARE i dati "Code" dal nostro servizio web.

Test del servizio Web riposante

Ora, quando navighiamo al Tutorial URL Per visualizzare tutte le stringhe nell'elenco del nostro tutorial, noterete che il valore di "Queues" 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 del tutorial è stato eliminato con successo.

Test del servizio Web riposante

Pratiche migliori dell'API RESTful

Creare un'API REST funzionante è solo il primo passo; realizzarne una scalabile e di facile manutenzione richiede disciplina. Le pratiche descritte di seguito contribuiscono a mantenere i vostri endpoint prevedibili, sicuri e facili da utilizzare per altri sviluppatori e agenti di intelligenza artificiale.

  • Utilizzare i sostantivi, non i verbi, in URLs. Punti finali come /dipendenti/1 sono più chiari di /getEmployee?id=1, perché il verbo HTTP descrive già l'azione.
  • Restituisci codici di stato significativi. Invia 200 in caso di successo, 201 per una risorsa creata, 400 per una richiesta non valida, 401 per accesso non autorizzato, 404 per una risorsa mancante e 500 per errori del server.
  • Versiona la tua API. Aggiunta di un segmento di versione come /v1/ Questo percorso consente di far evolvere il servizio senza interrompere i rapporti con i clienti esistenti.
  • Proteggi ogni endpoint. Utilizza HTTPS, insieme a chiavi API o token OAuth 2.0, e convalida tutti gli input in entrata.
  • Supporto per paginazione e filtri. La restituzione di grandi collezioni in pagine mantiene le risposte veloci e riduce il carico del server.

Seguire queste convenzioni rende l'integrazione del tuo servizio web RESTful intuitiva, sia che il client sia un'app mobile, un sistema partner o un flusso di lavoro automatizzato basato sull'intelligenza artificiale.

DOMANDE FREQUENTI

REST è uno stile architetturale che utilizza verbi HTTP e formati leggeri come JSON. SOAP è un protocollo rigoroso che si basa su incapsulamenti XML. REST è più veloce, più semplice e più adatto a client web e mobile, mentre SOAP è più indicato per sistemi aziendali che necessitano di sicurezza integrata.

Le API RESTful restituiscono codici di stato HTTP standard. 200 conferma una richiesta andata a buon fine, 201 indica una risorsa creata, 400 segnala una richiesta non valida, 401 significa accesso non autorizzato, 404 segnala una risorsa mancante e 500 indica un errore del server durante l'elaborazione.

API REST sicure con HTTPS per la crittografia del trasporto, chiavi API o token OAuth 2.0 per l'autenticazione, controllo degli accessi basato sui ruoli per l'autorizzazione, limitazione della frequenza delle richieste per prevenire abusi e rigorosa convalida degli input. La registrazione delle richieste è utile per l'audit e la gestione degli incidenti.

Fornitori di IA come OpenAI, Anthropic e Google Espongono endpoint REST che accettano richieste JSON e restituiscono testo generato. Gli sviluppatori inviano richieste POST con chiavi API e il servizio risponde con l'output del modello, consentendo la creazione di chatbot, agenti e pipeline di automazione.

Sì. I moderni agenti di intelligenza artificiale utilizzano chiamate di strumenti o chiamate di funzioni per richiamare endpoint REST durante una conversazione. L'agente seleziona un endpoint, crea il payload JSON, invia la richiesta e legge la risposta per pianificare la sua prossima azione senza intervento umano.

Un browser web può testare direttamente le chiamate GET. Per le richieste POST, PUT e DELETE, gli sviluppatori utilizzano strumenti come Fiddler or Postmanche consentono di impostare le intestazioni, scegliere un verbo e ispezionare la risposta.

I servizi REST si scambiano comunemente dati in formato JSON perché è leggero e facile da analizzare. Possono anche utilizzare XML, HTML o testo semplice. Il client e il server concordano sul formato tramite le intestazioni HTTP Content-Type e Accept.

Riassumi questo post con: