SugarCRM REST API: Un’applicazione in appena dieci minuti

7
Antonio Musarra's Blog Document Revision:1.0-IT The ideal solution for a problem Blog: http://www.dontesta.it LinkedIn: http://it.linkedin.com/in/amusarra Google+: https://plus.google.com/+AntonioMusarra Mail: [email protected] 09/04/14 1 This document is issued with license Creative Commons AttributionNonCommercialShareAlike SugarCRM REST API: Un’applicazione in appena dieci minuti Mi capita abbastanza spesso di navigare e rispondere a quesiti posti sul portale Stack Overflow 1 . In una passata recente sera, mi sono imbattuto su una questione cui ho risposto e in seguito preso spunto per quest’articolo. La domanda 2 posta su Stack Overflow da cui ho preso spunto recita esattamente: “I am trying to login to SugarCRM using jQuery and Sugar REST API and i want to create a html 5 app please tell me how to authenticate to sugarCRM in my html file.” Da questa domanda è nato quasi immediatamente il titolo dell’articolo che sintetizza ciò che poi sarà il risultato finale dell’idea, in altre parole, realizzare un’applicazione (semplice) HTML 5 (costruita veramente in dieci minuti) che interagisca con il sistema SugarCRM sfruttando le API REST; in un certo senso ho appena espresso un requisito utente. Il risultato finale della nostra applicazione sarà simile a quanto indicato nel mockup di Figura 1. Figura 1 Mockup dell’applicazione HTML 5 SugarCRM REST API Application. 1 Stack Overflow è un sito web che fa parte della rete Stack Exchange in cui si possono porre domande riguardo a vasti argomenti di programmazione. 2 I dettagli sulla domanda SugarCRM REST API and jquery mobile sono disponibili all’URL 2 I dettagli sulla domanda SugarCRM REST API and jquery mobile sono disponibili all’URL http://stackoverflow.com/questions/20904378/sugarcrmrestapiandjquerymobile

description

Realizzare un’applicazione (semplice) HTML 5 (costruita veramente in dieci minuti) che interagisca con il sistema SugarCRM sfruttando le API REST. Con gli strumenti adeguati abbiamo avuto modo di costatare come in questi ultimi anni in particolare sia divenuto semplice e quasi immediato realizzare applicazioni web, che interagiscono con servizi prettamente di tipo REST per attingere ai dati. L’utilizzo di framework commisurati al progetto influisce positivamente sul risparmio di tempo necessario per l’implementazione, non considerando ovviamente il tempo necessario per l’apprendimento dell’uso dello strumento.

Transcript of SugarCRM REST API: Un’applicazione in appena dieci minuti

Page 1: SugarCRM REST API: Un’applicazione in appena dieci minuti

Antonio  Musarra's  Blog   Document Revision:1.0-IT The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it  

LinkedIn:  http://it.linkedin.com/in/amusarra    Google+:  https://plus.google.com/+AntonioMusarra  Mail:  [email protected]  

 

09/04/14   1  This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike  

 

 

SugarCRM  REST  API:  Un’applicazione  in  appena  dieci  minuti  

Mi   capita   abbastanza   spesso   di   navigare   e   rispondere   a   quesiti   posti   sul  portale  Stack  Overflow1.   In  una  passata   recente  sera,  mi   sono   imbattuto  su  una  questione   cui   ho   risposto   e   in   seguito   preso   spunto   per   quest’articolo.   La  domanda2    posta  su  Stack  Overflow  da  cui  ho  preso  spunto  recita  esattamente:    

“I   am   trying   to   login   to   SugarCRM   using  jQuery  and  Sugar  REST  API  and  i  want  to  create  a  html  5  app  please   tell  me  how  to  authenticate   to   sugarCRM   in  my  html  file.”  

 Da  questa  domanda  è  nato  quasi  immediatamente  il  titolo  dell’articolo  che  

sintetizza   ciò   che  poi   sarà   il   risultato   finale  dell’idea,   in   altre  parole,   realizzare  un’applicazione   (semplice)   HTML   5   (costruita   veramente   in   dieci   minuti)   che  interagisca  con  il  sistema  SugarCRM  sfruttando  le  API  REST;  in  un  certo  senso  ho  appena  espresso  un  requisito  utente.   Il   risultato   finale  della  nostra  applicazione  sarà  simile  a  quanto  indicato  nel  mockup  di  Figura  1.    

           Figura  1  Mockup  dell’applicazione  HTML  5  SugarCRM  REST  API  Application.  

                                                                                                               1  Stack  Overflow  è  un  sito  web  che  fa  parte  della  rete  Stack  Exchange  in  cui  si  possono  porre  domande  riguardo  a  vasti  argomenti  di  programmazione.  2  I  dettagli  sulla  domanda  SugarCRM  REST  API  and  jquery  mobile  sono  disponibili  all’URL  2  I  dettagli  sulla  domanda  SugarCRM  REST  API  and  jquery  mobile  sono  disponibili  all’URL  http://stackoverflow.com/questions/20904378/sugarcrm-­‐rest-­‐api-­‐and-­‐jquery-­‐mobile  

Page 2: SugarCRM REST API: Un’applicazione in appena dieci minuti

Antonio  Musarra's  Blog   Document Revision:1.0-IT The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it  

LinkedIn:  http://it.linkedin.com/in/amusarra    Google+:  https://plus.google.com/+AntonioMusarra  Mail:  [email protected]  

 

09/04/14   2  This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike  

 

 

1. Da  dove  partire?  Il   titolo   del   paragrafo   è   proprio   il   classico   bel   domandone,   la   prima  

domanda  che  sicuramente  tutti  pongono  a  se  stessi  nel  momento  in  cui  si  parte  con  un  progetto  nuovo.  

Non   vorrei   porre   troppa   attenzione   al   codice   necessario   per   realizzare  l’applicazione,  al   contrario,   ritengo  più   importante   fare   insieme   la   lista  di  quali  sono   gli   strumenti   fondamentali   da  mettere   nella   propria   borsa   degli   attrezzi  per   l’implementazione   di   questo   requisito.   Generalmente   tra   gli   strumenti   che  consentono  di  realizzare  un  progetto  è  possibile  annoverare  i  seguenti  elementi:  

 • Linguaggi;  • Tecnologie;  • Framework.  

   Il   titolo  del   requisito  stesso  contiene  già  molti   indizi  che  ci  consentono  di  

fare  uno  schema  del  genere:    

• L’applicazione  deve  essere  in  HTML  5:  o HTML  5  è  linguaggio  base  per  la  realizzazione  della  struttura  

per  la  nostra  applicazione;  o CSS3   è   la   base   per   lo   style   che   la   nostra   applicazione   deve  

avere.  • L’applicazione  deve  interagire  con  alcuni  servizi  REST  esposti  da  

SugarCRM:  o Java   Script   è   il   linguaggio   con   cui   si   scriverà   il   codice  

necessario  per  interagire  con  i  servizi  REST  di  SugarCRM;  o Ajax   è   la   tecnologia   alla   base   dell’interazione   tra   la   nostra  

applicazione  HTML  5  e  i  servizi  remoti  REST  di  SugarCRM.    

Ci   siamo   quasi.   Lo   schema   di   dettaglio   precedente   riporta   le   chiavi  linguaggi  e  tecnologie,  all’appello  sono  però  ancora  assenti  questi  benedetti  (e  lo  sono   davvero)   framework.   Per   questi   ultimi   attrezzi   ho   deciso  mettere   dentro  due  “grandi  nomi”:  

     • Bootstrap:   è   possibile   affermare   che   sia   il   re   dei   framework  per   lo  

sviluppo   d’interfacce   web   e   lo   standard   di   fatto   come   punto   di  partenza   per   la   realizzazione   di   template   HTML   preconfezionati,  soprattutto   in   ottica   del  Responsive  Web  Design   (RWD).  Nel   nostro  caso  frutteremo  quindi  le  basi  di  questo  framework  per  costruire  con  pochissimo  sforzo  il  layout  della  nostra  applicazione;  

• jQuery:  è  il  più  popolare  framework  Java  Script  cross-­‐browser  che  si  propone   come   obiettivo   quello   di   semplificare   la   programmazione  lato   client   di   applicazioni   HTML.   Nel   nostro   caso   sfrutteremo  principalmente   il   componente   Ajax   responsabile   del   colloquio   tra   la  nostra  applicazione  e  i  servizi  remoti  REST  di  SugarCRM.  

Page 3: SugarCRM REST API: Un’applicazione in appena dieci minuti

Antonio  Musarra's  Blog   Document Revision:1.0-IT The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it  

LinkedIn:  http://it.linkedin.com/in/amusarra    Google+:  https://plus.google.com/+AntonioMusarra  Mail:  [email protected]  

 

09/04/14   3  This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike  

 

 

 Molto   bene,   direi   che   la   nostra   borsa   degli   attrezzi   è   completa   da   poter  

consentire   l’avvio  dell’implementazione  del  progetto.   In  Tabella  1  ho  indicato  il  riepilogo  degli  strumenti  necessari  per  l’implementazione  del  progetto.    Nome  Applicazione   SugarCRM  REST  API  Application  Tipo   Client  Side  (via  Browser  Web)  Linguaggi   HTML  5/CSS3/Java  Script  Tecnologie   Ajax,  REST  Framework   Bootstrap,  jQuery  Core,  jQuery  UI  Tabella  1  Caratteristiche  tecniche  dell’applicazione  da  realizzare.  

In  linea  generale  l’utilizzo  di  strumenti  adeguati  per  la  realizzazione  di  un  progetto,   consente   il   raggiungimento   dell’obiettivo   nel   minor   tempo   possibile  aumentando   la   qualità   del   progetto   stesso   soprattutto   in   termini   di  manutenibilità.    

2. Interazione  con  i  servizi  REST  I   dati   della   nostra   applicazione   d’esempio   provengono   dal   sistema  

SugarCRM,   richiesti   tramite   l’interfaccia   REST   (SugarCRM)   che   SugarCRM  pubblicamente  espone.  

I   requisiti   della   nostra   applicazione   riguardo   all’accesso   ai   dati   di  SugarCRM  sono  i  seguenti:  

 • Login  sul  sistema  SugarCRM  su  base  Username  e  Password;  • Visualizzazione   d’informazioni   circa   il   sistema   SugarCRM   cui   si  

compie  la  connessione;  • Visualizzazione   di   una   serie   di   dati   riguardante   l’utente   che   ha  

eseguito  l’accesso  a  SugarCRM;  • Visualizzazione   delle   attività   (calls,   task,   opportunities)   in   carico  

all’utente  che  ha  eseguito  l’accesso  a  SugarCRM:  o Per   ogni   attività   deve   essere   possibile   aprire   il   dettaglio  

direttamente   dall’interfaccia   di   SugarCRM   e   senza   eseguire  nuovamente  l’accesso.  

 Le  informazioni  estratte  da  SugarCRM  saranno  visualizzate  tramite  l’ausilio  

del   modulo   UI   widgets   accordion (The jQuery Foundation., 2014).   I   dati   che   i  servizi  REST  restituisco,  sono  in  formato  JSON  (ECMA International, 2013).    

Le  chiamate  alle  “operazioni”  REST  (SugarCRM)  che  l’applicazione  indirizza  a  SugarCRM  (via  Ajax)  sono  le  seguenti:  

 • login(user_auth,  application_name,  name_value_list)  

Page 4: SugarCRM REST API: Un’applicazione in appena dieci minuti

Antonio  Musarra's  Blog   Document Revision:1.0-IT The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it  

LinkedIn:  http://it.linkedin.com/in/amusarra    Google+:  https://plus.google.com/+AntonioMusarra  Mail:  [email protected]  

 

09/04/14   4  This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike  

 

 

• get_server_info()  • get_entry(session,module_name,  id,  select_fields,  

link_name_to_fields_array,  track_view)  • seamless_login(session)  • get_upcoming_activities(session)  

 Le  figure  a  seguire  mostrano  l’applicazione  appena  realizzata  in  esecuzione,  

dove  sono  evidenti  i  requisiti  implementati  definiti  in  precedenza.  L’applicazione  visualizzata  nelle  figure  che  seguono  è  in  esecuzione  su  di  un  iPad  e  come  potete  vedere   non   sono   evidenziati   problemi   di   visualizzazione,   questa   possibilità   è  gratuitamente   offerta   dal   framework   Bootstrap   grazie   al   pieno   supporto   del  Responsive  Web  Design  (RWD),  e  noi  evitiamo  di  scrivere  noiose  righe  di  codice.  

 L’applicazione   realizzata   è   disponibile   live   e   raggiungibile   all’indirizzo  

http://amusarra.github.io/Project/SugarCRM/REST/ClientApplication/HTMLSugarCRMRESTApplication.html  

L’istanza  SugarCRM  di  riferimento  (Community  Edition  6.5  su  PostgreSQL)  a   cui   l’applicazione   si   connette   è   live   e   raggiungibile   all’indirizzo  http://sugarcrmpgsql-­‐shiruslabs.rhcloud.com  

     

 Figura  2  Errore  durante  l’accesso  a  SugarCRM  (fase  di  login).  

Page 5: SugarCRM REST API: Un’applicazione in appena dieci minuti

Antonio  Musarra's  Blog   Document Revision:1.0-IT The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it  

LinkedIn:  http://it.linkedin.com/in/amusarra    Google+:  https://plus.google.com/+AntonioMusarra  Mail:  [email protected]  

 

09/04/14   5  This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike  

 

 

 Figura  3  Accesso  a  SugarCRM  avvenuto  con  successo.  

 

 Figura  4  Visualizzazione  delle  informazioni  di  sistema  cui  si  è  connessi.  

 

Page 6: SugarCRM REST API: Un’applicazione in appena dieci minuti

Antonio  Musarra's  Blog   Document Revision:1.0-IT The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it  

LinkedIn:  http://it.linkedin.com/in/amusarra    Google+:  https://plus.google.com/+AntonioMusarra  Mail:  [email protected]  

 

09/04/14   6  This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike  

 

 

 Figura  5  Visualizzazione  delle  informazioni  sull’utente  che  ha  eseguito  l’accesso.  

 

 Figura  6  Visualizzazione  delle  attività  in  carico  all’utente  che  ha  eseguito  l’accesso  a  SugarCRM.  

 

Page 7: SugarCRM REST API: Un’applicazione in appena dieci minuti

Antonio  Musarra's  Blog   Document Revision:1.0-IT The  ideal  solution  for  a  problem   Blog:  http://www.dontesta.it  

LinkedIn:  http://it.linkedin.com/in/amusarra    Google+:  https://plus.google.com/+AntonioMusarra  Mail:  [email protected]  

 

09/04/14   7  This  document  is  issued  with  license  Creative  Commons  Attribution-­‐NonCommercial-­‐ShareAlike  

 

 

 Figura  7  Accesso  alla  visualizzazione  della  scheda  di  dettaglio  da  My  Upcoming  Activities.  

3. Conclusioni  Con  gli  strumenti  adeguati  abbiamo  avuto  modo  di  costatare  come  in  questi  

ultimi   anni   in   particolare   sia   divenuto   semplice   e   quasi   immediato   realizzare  applicazioni   web,   che   interagiscono   con   servizi   prettamente   di   tipo   REST   per  attingere   ai   dati.   L’utilizzo   di   framework   commisurati   al   progetto   influisce  positivamente   sul   risparmio   di   tempo   necessario   per   l’implementazione,   non  considerando  ovviamente  il  tempo  necessario  per  l’apprendimento  dell’uso  dello  strumento.    

La   stesura   di   quest’articolo   ha   però   richiesto   più   dieci   minuti,   tempo  sicuramente  ben  speso.  

Bibliography  ECMA  International.  (2013,  October).  ECMA-­‐404  The  JSON  Data  Interchange  Standard.  ECMA-­‐404  The  JSON  Data  Interchange  Standard  .  SugarCRM.  (s.d.).  Method  Calls.  Tratto  da  SugarCRM  Support  Portal:  http://support.sugarcrm.com/02_Documentation/04_Sugar_Developer/Sugar_Developer_Guide_6.5/02_Application_Framework/Web_Services/05_Method_Calls/  SugarCRM.  (s.d.).  Web  Services.  Tratto  da  SugarCRM  Support  Portal:  http://support.sugarcrm.com/02_Documentation/04_Sugar_Developer/Sugar_Developer_Guide_6.5/02_Application_Framework/Web_Services/  The  jQuery  Foundation.  (2014).  Accordion.  Tratto  da  JQuery  User  Interface  (UI):  http://jqueryui.com/accordion/