Nello sviluppo di App o di una Web Application , è quasi impossibile non avere a che fare con i servizi REST e le Web Api.

Nel Web il termine API è sinonimo di WebService online che consentono alle app di recuperare e fare update di dati. Ci sono servizi online con nomi/formati differenti che si sono diffusi nel corso degli anni, come ad esempio SOAP, anche se la scelta più diffusa è quella di creare servizi REST o API RESTful.

Immaginiamo di avere un’applicazione complessa, composta ad esempio da App e da Applicazioni Windows Form. Senza un’architettura basata su API ogni applicazione client  sarà sviluppata, con molta probabilità, con una sua Business Logic e con linguaggi di programmazione differenti. Questo tipo di approccio porterà drasticamente allo sviluppo di applicazioni complesse e difficilmente mantenibili.

Si può ottenere una semplificazione dell’architettura creando una serie di API centralizzate che consentano di gestire la Business Logic dell’ intera applicazione. In questo modo ciascun client potrà utilizzare le stesse API per eseguire operazioni di GET, UPDATE e DELETE di dati. Tutte le App avranno le stesse funzionalità ed una eventuale modifica alle API verrà messa a disposizione del framework in maniera semplice e praticamente immediata.

Il ruolo della singola APP viene sicuramente semplificato ed in certi casi sarò quello di singola interfaccia grafica.

REST (Representational State Transfer) è un archiettura che consente di creare API che utilizzano il protocollo HTTP per la definizione dei metodi di comunicazione. Questo tipo di approccio è sicuramente ottimale per molte applicazioni: utilizzando il protocollo HTTP, infatti, il client potrebbe essere un Browser Web ma anche un App che ne implementa i meccanismi.

Possiamo pensare al protocollo HTTP, come un protocollo composto da diversi componenti:

  • Risorse: REST utilizza degli indirizzi URL per definire la struttura delle API. Un esempio di richiesta è rappresentato da http://www.contoso.it/api/Prod/1, che consente di ottenere informazioni relativi al prodo con Id=1;
  • Verbs: sono i comandi che tipicamente vengono inviati tramite il protocollo HTTP, quindi i comandi GET, POST, PUT e DELETE
  • Headers: sono tutte le informazioni che sono presenti all’interno della headers della richiesta HTTP. Ad esempio il nome dell’agent (browser) utilizzato per la connessione
  • Request Body: è il contenuto della richiesta. Per esempio in una richiesta di tipo POST il body potrebbe essere una struttura dati in formato XML oppure Json.
  • Response Body: è il contenuto della risposta. Come per Request Body potrebbe essere una struttura dati XML, Json oppure una pagina in formato HTML.
  • Response Status Code: Sono i codici che vengono delle risposte HTTP definite all’interno di RFC2616.

Nel prossimo post vedremo come è possibile implementare facilmente servizi RESTFul utilizzando le funzionalità del framework .NET: le Web API.

 

 

 

https://dotnettortona.net/wp-content/uploads/2015/09/LinkClick.aspx_.pnghttps://dotnettortona.net/wp-content/uploads/2015/09/LinkClick.aspx_-150x150.pngDotNetMicrosoft MVCMVC,REST,Web APINello sviluppo di App o di una Web Application , è quasi impossibile non avere a che fare con i servizi REST e le Web Api. Nel Web il termine API è sinonimo di WebService online che consentono alle app di recuperare e fare update di dati. Ci sono servizi...La prima Community su .NET a Tortona (AL)