Heroku - 22 API REST Introduction
Bienvenue dans cette introduction à la troisième solution d'intégration entre Salesforce et Heroku : l'API REST native de Salesforce. Comme toujours, l'objectif est de synchroniser les données entre les deux plateformes. Salesforce utilise une architecture où chaque objet est une table indépendante, manipulable via l'API REST native. Cette API peut être consommée par des applications externes comme une application Heroku.
Comment fonctionne l'API REST Salesforce
Par défaut, l'API permet de réaliser toutes les opérations CRUD : créer de nouvelles entrées, mettre à jour n'importe quel champ, lire les données d'une table, ou supprimer des entrées. C'est une API RESTful classique. Prenons un exemple : vous avez une landing page dont le but est de collecter des emails pour une newsletter, gérée ensuite dans Salesforce. La landing est hébergée sur Heroku. Quand un visiteur saisit son email, votre app Heroku fait un appel API à Salesforce pour créer une nouvelle entrée dans la table appropriée avec l'email fourni.
Un endpoint typique ressemble à : {instance}/services/data/v{version}/sobjects/Account. Décomposons : l'instance est l'URL fournie par Salesforce lors de votre inscription ; /services/data/{version} indique qu'on manipule des données ; /sobjects/Account indique l'objet ciblé. Pour accéder à un autre objet, on change simplement la fin de l'endpoint.
- jsforce (Node.js)
- simple-salesforce (Python)
- force.com REST API Client / Restforce (Ruby)
- Java clients (Salesforce Data.com, force-rest-api)
Plutôt que de gérer ces requêtes vous-même, il est fortement recommandé d'utiliser une librairie externe dédiée qui simplifie l'authentification, le formatage des requêtes et la gestion des erreurs. Comme nous le verrons en pratique, pour Node.js il y a jsforce ; pour Python, simple-salesforce ; pour Java, plusieurs clients existent (force.com, Data.com).
Deux limitations à connaître. La taille : une requête API ne peut pas dépasser 3 Mo, et vous ne pouvez pas interagir avec plus de 2000 lignes par appel. Le quota journalier : Salesforce limite le nombre d'appels API par jour selon votre type de compte. Avant de choisir l'API REST, estimez votre nombre de requêtes attendues et vérifiez votre marge.
En conclusion, les requêtes API REST sont une solution pratique mais légèrement plus lente que Heroku Connect, car chaque appel transite par le navigateur du client jusqu'à l'application Heroku, puis vers Salesforce. À éviter pour des données très changeantes (plusieurs fois par jour) qui généreraient trop d'appels. À privilégier pour des données peu modifiées (configurations, données de référence) car cela offre une synchronisation temps réel à coût moindre. C'est aussi un excellent outil pour envoyer ou récupérer de grandes quantités de données vers/depuis Salesforce à un coût bien plus bas que Heroku Connect. À bientôt pour la prochaine vidéo.