Connecter Drupal à des API externes

38
Connecter Drupal à des API externes *** Trucs et conseils

Transcript of Connecter Drupal à des API externes

Page 1: Connecter Drupal à des API externes

Connecter Drupal à des API externes

***

Trucs et conseils

Page 2: Connecter Drupal à des API externes

Libérez votre potentiel web.

***

•  Fondée à Montréal en 2004 •  8 spécialistes web à l’interne •  Développement de sites web qui vont

au-delà du marketing •  Maîtrise des CMS open-source •  Optimisation pour les appareils mobiles

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 3: Connecter Drupal à des API externes

Qui suis-je ?

***

•  Matthieu Gadrat •  Développeur PHP •  3 ans d’expérience avec des CMS open-source •  Amateur de ski

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 4: Connecter Drupal à des API externes

Qui suis-je ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 5: Connecter Drupal à des API externes

Ordre du jour

I – Qu’est-ce qu’un API et pourquoi connecter à un API ? II – Que savoir avant d’amorcer un projet Drupal/API ? III – Comment connecter Drupal à des API ? IV – Bref – Que retenir ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 6: Connecter Drupal à des API externes

Qu’est-ce qu’un API et pourquoi connecter à un API ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 7: Connecter Drupal à des API externes

Définition

API

« An Application Programming Interface (API) is a specification intended to be used as an interface

by software components to communicate with each other. An API may include specifications for routines,

data structures, object classes and variables. » - Wikipédia

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 8: Connecter Drupal à des API externes

API interne VS. API externe

API interne •  Spécification à l’intérieur d’une même application •  Ex. : API Drupal, API Module Views

API externe •  Connexion à un service extérieur à l’application •  Ex. : Google Maps, Facebook

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 9: Connecter Drupal à des API externes

Échelles et complexité des API I/III

API simples •  Facebook Lightbox/Addthis •  Souvent Front-end

•  Ex. : Javascript

•  Protocole HTTP/GET/POST •  Sans authentification ou authentification simple

(token)

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 10: Connecter Drupal à des API externes

Échelles et complexité des API II/III

API complexes •  Salesforce, Vimeo Upload API •  Intégration sur le serveur

•  Protocole SOAP via HTTPS •  Authentification sécurisée

•  Ex. : OAUTH

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 11: Connecter Drupal à des API externes

Échelles et complexité des API III/III

Absence d’API •  Objectifs remplis grâce à des mécanismes

d’exploitation

•  RSS Feed

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 12: Connecter Drupal à des API externes

Pourquoi connecter Drupal à un API externe ?

Prenons comme exemple d’entreprise :

M. Wilkins

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 13: Connecter Drupal à des API externes

Pourquoi connecter Drupal à un API externe ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

M. Wilkins •  Multinationale •  Fabrique des traitements

antipuces canins •  En processus de refonte de

son site web

Page 14: Connecter Drupal à des API externes

Pourquoi connecter Drupal à un API externe ?

Objectifs d’affaires de M. Wilkins •  Générer davantage de trafic sur les réseaux sociaux

•  Facebook et Twitter

•  Promouvoir et rentabiliser le catalogue en ligne •  Produit sur le site web = Produit dans l’inventaire

•  Offrir un meilleur service à la clientèle •  Historique des contacts et commandes de chaque client •  Ex. : Salesforce

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 15: Connecter Drupal à des API externes

Pourquoi connecter Drupal à un API externe ?

Améliorer les processus d’affaires… •  Minimiser les coûts (temps et $)

•  Limiter l’entrée de données

•  Faciliter la prise de décision •  Centraliser les informations

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 16: Connecter Drupal à des API externes

Pourquoi connecter Drupal à un API externe ?

… avec les outils offerts par Drupal •  Structure pour organiser les données

•  API interne •  Personnalisation du workflow

•  Modules •  Faciliter le traitement et l’analyse des données

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 17: Connecter Drupal à des API externes

Pourquoi ne pas choisir Drupal comme unique plateforme ? Excellente question !

Voyons M. Wilkins

•  Intérêt des autres outils •  Coûts de développement

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 18: Connecter Drupal à des API externes

Que savoir avant d’amorcer un projet Drupal/API ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 19: Connecter Drupal à des API externes

Se poser les bonnes questions

Analyse des processus d’affaires 1) Quel est le processus actuel de l’entreprise ?

•  Habitudes

2) Quel meilleur processus implanter ? •  En fonction des objectifs fixés •  Outils adaptés

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 20: Connecter Drupal à des API externes

Se poser les bonnes questions

Choix des API 3) Quels API atteindraient les objectifs ?

•  M. Wilkins •  Facebook •  Salesforce •  Logiciel custom

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 21: Connecter Drupal à des API externes

Se poser les bonnes questions

Évaluation des API 4) Quelles sont les spécifications et limites des API ? 5) Les limites identifiées peuvent-elles s’adapter au processus d’affaires ?

•  M. Wilkins •  Facebook : •  Salesforce : •  Inventaire : Enjeux

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 22: Connecter Drupal à des API externes

Enjeux reliés au projet

Contraintes des API

•  Coûts (temps et $) •  Learning curve •  Documentation

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 23: Connecter Drupal à des API externes

Enjeux reliés au développement •  Sécurité

•  SSL/TLS •  OAUTH

•  Multilinguisme •  Implémentation du service •  Encodage de caractères

•  Fonctionnalité avancée à Recherche •  Peut-on rechercher dans les données ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 24: Connecter Drupal à des API externes

Enjeux reliés à la performance •  Temps de réponse de l’API

•  M. Wilkins

•  Salesforce = Pas particulièrement rapide

•  Limite de requêtes •  Ex. : API Google Maps

•  Fréquence des appels

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 25: Connecter Drupal à des API externes

Comment connecter Drupal à des API ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 26: Connecter Drupal à des API externes

Évaluation des plugins existants •  Répondent-ils aux objectifs d’affaires ?

•  M. Wilkins •  Web-to-Lead = Pas idéal •  Salesforce Suite = À considérer

•  Peut-on les étendre ?

•  Possèdent-ils un API interne ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 27: Connecter Drupal à des API externes

Librairies de connexions indépendantes à Drupal •  Est-ce qu’il en existe ?

•  Sont-elles documentées ? •  Possibilité de les encapsuler dans un module ? •  Considérer écrire sa propre librairie

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 28: Connecter Drupal à des API externes

Plugins VS. templates Question niaiseuse ?

•  Souvent les connexions front-end dans les thèmes •  Remettre en question chacune des intégrations d’API

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 29: Connecter Drupal à des API externes

Enregistrer et manipuler les données •  Nodes

•  M. Wilkins •  Inventaire

•  Entities (D7) •  Taxonomy •  Users •  Logs •  Hook_scheme

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 30: Connecter Drupal à des API externes

Manipulation et automatisation Manipulation •  Migrate Module •  Feeds Module

•  Donner une interface à l’utilisateur •  M. Wilkins

•  Inventaire

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 31: Connecter Drupal à des API externes

Manipulation et automatisation Automatisation •  Plusieurs hooks lors des CRUD de tous les types

d’objets •  /!\ Ne pas sous-estimer le hook_cron

•  Mr. Wilkins •  Salesforce

•  Récupérer les factures •  Commandes des clients

•  Actions/Triggers pour les opérations plus complexes

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 32: Connecter Drupal à des API externes

Être transparent pour l’utilisateur •  Indiquer les temps d’attente lors des connexions

•  Afficher des messages clairs

•  Indiquer quoi faire s’il y a des erreurs

•  Offrir des rapports des importations

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 33: Connecter Drupal à des API externes

En tant que développeur : s’aider soi-même •  Produisez des logs

•  watchdog •  custom logs

•  Mettez en cache autant que possible •  cache_set() // cache_get() •  hook_flush_caches() si cache plus complexe

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 34: Connecter Drupal à des API externes

Bref

Que retenir ?

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 35: Connecter Drupal à des API externes

Un client heureux… •  Mr. Wilkins

•  Encourage les visiteurs à promouvoir la marque sur les réseaux sociaux •  Liens Facebook

•  Économise des coûts (temps et $) •  Mise à jour de l’inventaire via le logiciel interne

uniquement

•  Personnalise chaque communication avec ses clients •  Un client a accès à son historique de commandes et

de contacts

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 36: Connecter Drupal à des API externes

… et un développeur aussi •  Économise du temps de développement

•  Mécanisme intégré dans Drupal

•  Affiche les données en provenance d’autres plateformes •  Ex. : Module Views

•  Détient du code réutilisable •  Pour des sites similaires •  Pour le partage à la communauté

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 37: Connecter Drupal à des API externes

Drupal

Plus qu’un CMS pour un site web •  Hub de gestion de différents services

•  Diffuser le contenu dans d’autres plateformes •  Entrée de données •  Traduction

•  Remplacer un CRM ou logiciel de gestion d’inventaire

•  Application web

Briser  la  glace   Survol  des  API  

À  garder  en  tête  

Connecter  Drupal   Conclusion  

Page 38: Connecter Drupal à des API externes

Merci !

Des questions ?

Contactez-nous :

[email protected] / [email protected]

Notre prochain RDV :

Générer plus de revenus par le web : pouvez-vous faire mieux ?

PME 2013 – 22 et 23 novembre prochains