Web services

Web ServicesI Web services (WS) sono meccanismi che consentono lo scambio di informazioni fra applicazioni. Tipicamente le applicazioni sono remote l'una all'altra e lo scambio avviene utilizzando internet. La definizione più esaustiva è reperibile sul sito del World Wide Web Consortium (W3C)  dove dice: "A Web service is a software system designed to support interoperable machine-to-machine interaction over a network."

Il concetto di web services, come il nome stesso suggerisce, è legato al web, ad internet e al protocollo HTTP, anche se ci sono diversi metodi e 'filosofie' di implementazione.

In questo articolo ritengo inutile entrare nei dettagli di queste implementazioni, una buona spiegazione si trova su http://www.html.it/pag/19595/introduzione-ai-web-service/ dove vengono evidenziate le differenze fra SOAP (Simple Object Access Protocol), REST (Representational State Transfer) e come quest'ultimo può essere utilizzato.

Di seguito mi limito a descrivere l'utilizzo di web services in ambito Drupal, attraverso il modulo services.
La community di Drupal mette a disposizione altri moduli che interessano i web services.

Web services, nativo in Drupal 8, porta Drupal verso un suo utilizzo come back end, ovvero come fornitore di un servizio, anche separato dall'interfaccia che visualizza i dati: il front end (tipicamente il browser).

Gli esempi di seguito riportati sono per Drupal 7. In Drupal 8 i concetti restano simili, ma cambiano i alcune interfacce e i meccanismi di configurazione.

I web services mettono a disposizione delle risorse identificate con l'URL (Uniform Resource Locator). In un primo e semplicistico approccio, si può pensare alla risorsa come ad una pagina web o comunque dati presenti sul web.

I WS consentono l'impiego di diverse metodologie per lo scambio dei dati, ad esempio SOAP, XML RPC  e REST. L'ultimo è quello che verrà impiegato di seguito. Per i dettagli si rimanda ai link citati.

I metodi, ovvero le operazioni che sono possibili sulle risorse sono quelli tipici del protocollo HTTP, in particolare GET, POST, PUT e DELETE. GET richiede una risorsa, POST crea una nuova risorsa, PUT modifica una risorsa, DELETE cancella la risorsa. Da qui l'acronimo CURD (Create, Update, Retrive, Delete).

Nella implementazione in Drupal occorre installare il modulo services (la versione 3.x) e relative dipendenze, abilitarlo, configurare e definire le risorse che si vogliono mettere a disposizione.

Sul sito Drupal.org è disponibile una buona documentazione di services.

Tipologia: