Categorie
featured sviluppo

Webservice e interfaccie REST

Le interfacce REST ( REpresentational State Transfer ) sono un’ alternativa a SOAP e XML-RPC per la comunicazione via http che ho avuto modo di utilizzare ed apprezzare in uno dei miei ultimi lavori.

La loro implementazione si basa sulla realizzazione di semplicissimi indirizzi http che una volta “interpretati? restituiscono le informazioni richieste nel formato a noi più congeniale ( txt, xml, json o direttamente html )

Nel mio caso una delle parti sviluppate prevedeva la visualizzazione via web di alcune tabelle presenti in un database.

Ho quindi definito questa URI: “http://nomeserver/rest/tabelle” che restituisce l’elenco delle tabelle disponibili.

Aggiungendo un “pezzo? è possibile visualizzare il contenuto di una specifica tabella

http://nomeserver/rest/tabelle/clienti/

Ed attaccando un altro pezzo ecco che possiamo avere il dettaglio del cliente con id 34

http://nomeserver/rest/tabelle/clienti/34/

Personalmente trovo questa metodologia molto pratica ed essenziale, di chiara lettura e con un briciolo di URL Rewriting molto veloce da implementare.

Ecco ancora qualche link per approfondire.

Categorie
sviluppo

PHP e Python: connessione tramite socket

Mettiamo caso che ci sia un gestionale con un server scritto in python in ascolto su una porta predefinita ( es. 12345 ).

Mettiamo caso che i client all’interno della rete si connettano senza problemi ma un firewall sia configurato per filtrare tutti tentativi di connessione al di fuori della porta 80 ( vedi webserver )

Mettiamo caso da un pagina web scritta in php si voglia interagire con il gestionale interrogandolo sullo stato di ordini, bolle, fatture, automatizzare la preparazione di alcune stampe e si voglia anche avere la possibilità di inviare un ordine.
Tutto questo cercando di mantenere un adeguato livello di sicurezza.

Mettiamo caso che l’accesso diretto alla base dati ( PostgreSQL ) anche se possibile sia sconsigliata in quanto il gestionale ha degli automatismi che sarebbe inutile riportare in php.

Soluzione adottata: usare direttamente i socket sul webserver tramite php, e servirsi di un protocollo di comunicazione basato su http e xml ( aka REST )