Accès aux données Salesforce dans des applications hybrides
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Utiliser la bibliothèque force.js pour accéder à l’API REST Salesforce depuis une application hybride
- Utiliser les contrôleurs Apex pour accéder aux données Salesforce depuis une application hybride distante
Accès à l'API Salesforce avec Force.js
Lors de notre découverte de l’application ContactExplorer, vous avez pu observer la bibliothèque force.js. Elle fournit un vaste ensemble de fonctions permettant d’effectuer des opérations sur les enregistrements Salesforce. En plus des opérations de création, de suppression, de mise à jour et d'upsert, il prend en charge les requêtes SOQL, les recherches SOSL, les descriptions de métadonnées et la gestion des fichiers.
Vous pouvez télécharger force.js et d’autres bibliothèques JavaScript du kit de développement mobile à partir des référentiels GitHub SalesforceMobileSDK-Shared/libs et SalesforceMobileSDK-Shared/dependencies.
Premiers pas avec force.js et le kit de développement Mobile SDK
Pour commencer, chargez vos ressources en applications essentielles sur le Cloud Salesforce.
- Créez un fichier d’archive, comme un fichier ZIP, qui contient cordova.js, force.js et toute autre ressource statique nécessaire à votre projet.
- Dans Salesforce, chargez le fichier d’archive en cliquant sur Votre nom | Configuration de l’application | Développer | Ressources statiques.
Exemple de page Visualforce simple
Utilisation des contrôleurs Apex dans une application hybride distante
Avec les applications hybrides distantes, vous accédez généralement aux données Salesforce par le biais d’une page Visualforce et de son contrôleur Apex associé. Si votre page Visualforce contient un code JavaScript, ce code peut interagir et partager des données avec le contrôleur Apex côté serveur.
- Il propose plus de flexibilité et de meilleures performances que apex:actionFunction.
- Il prend en charge les paramètres et les types de retour dans la méthode de contrôleur Apex, avec un mappage automatique entre les types Apex et JavaScript.
- Il utilise un modèle de traitement asynchrone avec rappels.
- Contrairement à apex:actionFunction, la requête AJAX n’inclut pas l’état de vue de la page Visualforce. Cela se traduit par un aller-retour plus rapide.
L’exemple suivant insère le code JavaScript dans une balise <script> sur la page Visualforce. Ce code appelle la méthode invokeAction() sur l’objet de gestionnaire à distance Visualforce. Il transmet à invokeAction() des métadonnées nécessaires pour appeler une fonction intitulée getItemId() sur l’objet de contrôleur Apex objName. Comme invokeAction() s’exécute de manière asynchrone, le code définit également une fonction de rappel pour traiter la valeur renvoyée par getItemId(). Dans le contrôleur Apex, l’annotation @RemoteAction expose la fonction getItemId() au code externe JavaScript.
Dans la méthode getItemId(), par exemple, vous pouvez appeler une API Salesforce et capturer la valeur renvoyée dans JavaScript.
Ressources
- REST API Developer Guide
- Centre de développement relatif à l’intégration aux API REST
- Accessing Salesforce Data: Controllers vs. APIs
- Appel de l’API REST à partir de pages Visualforce, nouvelle version (Blog des développeurs Salesforce)
- https://github.com/forcedotcom/SalesforceMobileSDK-Shared
- Prise en main rapide : Connecter Postman à Salesforce