2. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
3. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Qui suis-je ?
***
• Matthieu Gadrat
• Développeur PHP
• 3 ans d’expérience avec des CMS open-source
• Amateur de ski
4. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Qui suis-je ?
5. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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 ?
6. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Qu’est-ce qu’un API et
pourquoi connecter à un API ?
7. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
8. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
9. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
É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)
10. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
É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
11. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Échelles et complexité des API III/III
Absence d’API
• Objectifs remplis grâce à des mécanismes
d’exploitation
• RSS Feed
12. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Pourquoi connecter Drupal à un API externe ?
Prenons comme
exemple d’entreprise :
M. Wilkins
13. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Pourquoi connecter Drupal à un API externe ?
M. Wilkins
• Multinationale
• Fabrique des traitements
antipuces canins
• En processus de refonte de
son site web
14. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
15. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
16. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
17. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Pourquoi ne pas choisir Drupal comme unique plateforme ?
Excellente question !
Voyons M. Wilkins
• Intérêt des autres outils
• Coûts de développement
18. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Que savoir avant d’amorcer
un projet Drupal/API ?
19. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
20. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Se poser les bonnes questions
Choix des API
3) Quels API atteindraient les objectifs ?
• M. Wilkins
• Facebook
• Salesforce
• Logiciel custom
21. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
22. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Enjeux reliés au projet
Contraintes des API
• Coûts (temps et $)
• Learning curve
• Documentation
23. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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 ?
24. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
25. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Comment connecter
Drupal à des API ?
26. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
É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 ?
27. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
28. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Plugins VS. templates
Question niaiseuse ?
• Souvent les connexions front-end dans les thèmes
• Remettre en question chacune des intégrations d’API
29. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Enregistrer et manipuler les données
• Nodes
• M. Wilkins
• Inventaire
• Entities (D7)
• Taxonomy
• Users
• Logs
• Hook_scheme
30. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Manipulation et automatisation
Manipulation
• Migrate Module
• Feeds Module
• Donner une interface à l’utilisateur
• M. Wilkins
• Inventaire
31. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
32. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Ê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
33. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
34. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
Bref
Que retenir ?
35. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
36. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
… 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é
37. Survol
des
À
garder
Connecter
Briser
la
glace
Conclusion
API
en
tête
Drupal
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
38. Merci !
Des questions ?
Contactez-nous :
info@symetris.ca / matthieu@symetris.ca
Notre prochain RDV :
Générer plus de revenus par le web :
pouvez-vous faire mieux ?
PME 2013 – 22 et 23 novembre prochains