Antonio	
  Musarra's	
  Blog	
   Document Revision:1.0-IT
The	
  ideal	
  solution	
  for	
  a	
  problem	
   Blog:	
  htt...
Antonio	
  Musarra's	
  Blog	
   Document Revision:1.0-IT
The	
  ideal	
  solution	
  for	
  a	
  problem	
   Blog:	
  htt...
Antonio	
  Musarra's	
  Blog	
   Document Revision:1.0-IT
The	
  ideal	
  solution	
  for	
  a	
  problem	
   Blog:	
  htt...
Antonio	
  Musarra's	
  Blog	
   Document Revision:1.0-IT
The	
  ideal	
  solution	
  for	
  a	
  problem	
   Blog:	
  htt...
Antonio	
  Musarra's	
  Blog	
   Document Revision:1.0-IT
The	
  ideal	
  solution	
  for	
  a	
  problem	
   Blog:	
  htt...
Antonio	
  Musarra's	
  Blog	
   Document Revision:1.0-IT
The	
  ideal	
  solution	
  for	
  a	
  problem	
   Blog:	
  htt...
Antonio	
  Musarra's	
  Blog	
   Document Revision:1.0-IT
The	
  ideal	
  solution	
  for	
  a	
  problem	
   Blog:	
  htt...
Upcoming SlideShare
Loading in...5
×

SugarCRM REST API: Un’applicazione in appena dieci minuti

636

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
636
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SugarCRM REST API: Un’applicazione in appena dieci minuti

  1. 1. 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:  antonio.musarra@gmail.com     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  
  2. 2. 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:  antonio.musarra@gmail.com     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.  
  3. 3. 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:  antonio.musarra@gmail.com     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)  
  4. 4. 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:  antonio.musarra@gmail.com     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/HTMLSug arCRMRESTApplication.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).  
  5. 5. 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:  antonio.musarra@gmail.com     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.    
  6. 6. 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:  antonio.musarra@gmail.com     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.    
  7. 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:  antonio.musarra@gmail.com     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_D eveloper_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_D eveloper_Guide_6.5/02_Application_Framework/Web_Services/   The  jQuery  Foundation.  (2014).  Accordion.  Tratto  da  JQuery  User  Interface  (UI):   http://jqueryui.com/accordion/    

×