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.
En résumé
Cette leçon présente l'intégration de l'API REST native de Salesforce, permettant de synchroniser et manipuler des données entre Salesforce et des applications externes comme Heroku. Vous apprendrez la structure des endpoints REST, comment créer, modifier et lire des données via des requêtes HTTP, ainsi que les meilleures pratiques d'intégration. La leçon couvre aussi les limitations importantes (3 MB par requête, 2000 lignes max, limite quotidienne d'appels) et les librairies populaires pour simplifier l'intégration (jsforce pour Node.js, simpl_salesforce pour Python).
Points clés
- L'API REST de Salesforce permet d'accéder et manipuler les tables Salesforce (sObjects) via des requêtes HTTP standards, idéale pour créer, lire, mettre à jour et supprimer des données.
- La structure d'un endpoint REST Salesforce comprend l'instance, les services data, la version, le type d'objet (sObject) et l'ID — exemple : /services/data/v60.0/sobjects/Account/a40
- Les librairies externes comme jsforce (Node.js), simpl_salesforce (Python) et Salesforce Tier (Java) simplifient l'intégration en fournissant des méthodes pré-développées pour éviter les erreurs.
- L'API REST Salesforce est limitée à 3 MB par requête, 2000 lignes par batch, et à un nombre maximal d'appels API par jour en fonction de votre type de compte.
- L'API REST est optimale pour les données peu changeantes (configuration, données statiques synchronisées en temps réel) et moins adaptée pour les données très volatiles qui généreraient trop de requêtes.
- Comparée à Heroku Connect, l'API REST offre un coût plus bas mais une vitesse inférieure, ce qui la rend idéale pour les synchronisations programmées plutôt que les mises à jour en temps réel massives.
Questions fréquentes
Comment fonctionne l'intégration entre une application Heroku et l'API REST de Salesforce ?
Une application Heroku envoie des requêtes HTTP REST à Salesforce pour créer, lire, mettre à jour ou supprimer des données. Par exemple, un formulaire d'inscription sur une landing page Heroku peut envoyer l'email à Salesforce via l'API REST pour le stocker dans une table (sObject) et l'utiliser ultérieurement pour des campagnes marketing.
Quelles sont les limitations principales de l'API REST Salesforce à considérer ?
L'API REST Salesforce a trois limitations clés : une taille maximale de 3 MB par requête, un maximum de 2000 lignes par opération batch, et une limite quotidienne du nombre d'appels API en fonction de votre type de compte Salesforce. Il faut estimer vos besoins avant de l'implémenter.
Quand privilégier l'API REST Salesforce plutôt que Heroku Connect ?
L'API REST Salesforce est recommandée pour les données statiques ou peu changeantes (configuration, référentiels) qui nécessitent une synchronisation à coût réduit. Heroku Connect est préférable pour les données très volatiles ou les synchronisations temps réel à grande échelle, où le nombre de requêtes API serait trop important avec l'API REST.