Extend SugarCRM Web Services?
SugarCRM fornisce attraverso delle API esposte come Web Services la possibilità di realizzare integrazioni con altri sistemi, consentendo a questi ultimi la lettura e la scrittura dei dati di SugarCRM. I Web Services di SugarCRM sono implementati tramite il toolkit NuSOAP (sia per SOAP sia per REST). SOAP (Simple Object Access Protocol) è usato per realizzare chiamate di procedura remota tramite il protocollo (utilizzato come trasporto) HTTP per trasmettere messaggi in XML. Le API SugarSoap, costruite sopra la libreria NuSOAP, sono incluse nelle edizioni Community, Professional, Corporate, Enterprise e Ultimate. REST (Representational State Transfer) è utilizzato per effettuare le chiamate di metodo attraverso il protocollo HTTP per l'invio e la ricezione di messaggi in formato JSON. Il framework di SugarCRM supporta l'aggiunta di diversi formati per lo scambio dati REST, i formati supportati out-of-the-box sono JSON e la serializzazione in formato PHP. Ad esempio, è possibile aggiungere formato XML per inviare e ricevere dati. Per maggiori informazioni sul supporto a formati aggiuntivi, rimando all'articolo di John Mertic Extend SugarCRM REST web services to use XML.
Il framework di SugarCRM è stato costruito in modo tale che sia possibile estendere con estrema facilità il set di API predefinite. La documentazione pubblicata da Sugar (Extending Web Services) è molto chiara sul meccanismo d'estensione dei Web Services. E' davvero necessario estendere i Web Services di SugarCRM?
Tutte le operazioni che l'utente "umano" esegue tramite GUI sull'entità gestite dal CRM possono essere eseguite attraverso le API esposte come Web Services. Attraverso le API native è quindi possibile eseguire le seguenti operazioni elementari (CRUD):
- Create or add new entries
- Read, retrieve, search, or view existing entries
- Update or edit existing entries
- Delete/deactivate existing entries
Nella maggior parte degli scenari d'integrazione (complessi o semplici che siano) le operazioni elencate in precedenza che SugarCRM espone nativamente sono più che sufficienti per soddisfare i requisiti d'integrazione. Nella figura a seguire un esempio reale di un processo d'integrazione tra Joomla e SugarCRM che prevede diverse interazioni tra i due sistemi e le chiamate ai WS (Web Services) di SugarCRM sono quelle native, nessuna estensione necessaria.
Questo livello di granularità dei WS di SugarCRM permette una flessibilità molto ampia soddisfacendo requisiti d'integrazione anche complessi tramite la composizione dei servizi elementari. Lo sviluppo di nuovi servizi su SugarCRM è un caso davvero estremo che ovviamente avrà impatti sul costo del progetto d'integrazione.