REST in ASP.NET Core

Completato

Quando si esplora una pagina Web, il server Web comunica con il browser tramite HTML, CSS e JavaScript. Se, ad esempio, si interagisce con la pagina inviando un modulo di accesso o facendo clic su un pulsante per l'acquisto, il browser invia le informazioni al server Web.

In modo analogo, i server Web possono comunicare con un'ampia gamma di client, tra cui browser, dispositivi mobili, altri server Web e altro ancora, usando i servizi Web. I client API comunicano con il server tramite HTTP e lo scambio di informazioni avviene usando un formato di dati come JSON o XML. Le API vengono spesso usate in applicazioni a pagina singola che eseguono la maggior parte della logica dell'interfaccia utente in un Web browser. La comunicazione con il server Web avviene principalmente tramite le API Web.

REST: un modello comune per la creazione di API con HTTP

REST (Representational State Transfer) è uno stile di architettura per la creazione di servizi Web. Le richieste REST vengono effettuate tramite HTTP. Usano gli stessi verbi HTTP usati dai Web browser per recuperare pagine Web e inviare dati ai server. I verbi sono:

  • GET: recupera i dati dal servizio Web.
  • POST: crea un nuovo elemento di dati nel servizio Web.
  • PUT: aggiorna un elemento di dati nel servizio Web.
  • PATCH: aggiorna un elemento di dati nel servizio Web descrivendo un set di istruzioni sulla modalità di modifica dell'elemento. L'applicazione di esempio in questo modulo non usa questo verbo.
  • DELETE: elimina un elemento di dati nel servizio Web.

Le API dei servizi Web conformi a REST sono denominate API RESTful. Vengono definite tramite:

  • URI di base.
  • Metodi HTTP, ad esempio GET, POST, PUT, PATCH o DELETE.
  • Tipo di supporto per i dati, ad esempio JavaScript Object Notation (JSON) o XML.

Un'API dovrà spesso fornire servizi per alcuni aspetti diversi ma correlati. Ad esempio, l'API pizza potrebbe gestire pizze, clienti e ordini. Si usa il routing per eseguire il mapping degli URI (Uniform Resource Identifier) alle divisioni logiche nel codice, in modo che le richieste a https://localhost:5000/pizza siano indirizzate a PizzaController e le richieste a https://localhost:5000/order siano indirizzate a OrderController.

Vantaggi della creazione di API in ASP.NET Core

Con ASP.NET è possibile usare lo stesso framework e gli stessi modelli per creare sia pagine Web che servizi. È possibile riutilizzare le classi modello e la logica di convalida e persino gestire sia pagine Web che servizi affiancati nello stesso progetto. Questo approccio presenta i vantaggi seguenti:

  • Serializzazione semplice: ASP.NET è stato progettato per esperienze Web moderne. Gli endpoint serializzano automaticamente le classi in JSON formattato correttamente per impostazione predefinita. Non è richiesta alcuna configurazione speciale. La serializzazione può essere personalizzata per gli endpoint con requisiti univoci.

  • Autenticazione e autorizzazione: per la sicurezza, gli endpoint API dispongono del supporto predefinito per token JSON Web (JWT) standard del settore. L'autorizzazione basata su criteri offre la flessibilità necessaria per definire regole di controllo di accesso efficaci nel codice.

  • Routing insieme al codice: ASP.NET consente di definire route e verbi inline nel codice, usando gli attributi. I dati dal percorso della richiesta, dalla stringa di query e dal corpo della richiesta vengono associati automaticamente ai parametri del metodo.

  • HTTPS per impostazione predefinita: HTTPS è una parte importante delle API Web moderne e professionali. Si basa sulla crittografia end-to-end per garantire la privacy e assicurare che le chiamate API non vengano intercettate e modificate tra client e server.

    ASP.NET offre il supporto predefinito per HTTPS. Genera automaticamente un certificato di test e lo importa facilmente per abilitare HTTPS locale, in modo che sia possibile eseguire le applicazioni ed eseguirne il debug in modo sicuro, prima di pubblicarle.

Condividere codice e conoscenze con le app.NET

È possibile usare le competenze e l'ecosistema .NET per condividere la logica dell'API Web con altre applicazioni create con .NET, tra cui dispositivi mobili, Web, desktop e servizi.

Test delle API Web con .NET HTTP REPL

Quando si sviluppa un sito Web tradizionale, in genere si visualizza e si testa il lavoro in un Web browser. Le API Web accettano e restituiscono dati anziché HTML, quindi un Web browser non è lo strumento ideale per testare le API Web.

Una delle opzioni più semplici da usare per l'esplorazione e l'interazione con le API Web è .NET HTTP REPL (Read-Evaluate-Print Loop). Si tratta di un modo semplice e diffuso per creare ambienti da riga di comando interattivi. Nell'unità successiva si creerà una semplice API Web e quindi si interagirà con essa usando .NET HTTP REPL.

Verificare le conoscenze

1.

Quale dei seguenti casi d'uso non è un buon motivo per creare un'API Web usando ASP.NET Core?