Skip to main content
À partir du 30 octobre 2026, la Trailblazer Community en ligne sera disponible uniquement en lecture seule. Les nouvelles conversations de communauté seront déplacées sur Slack. Consulter notre FAQ

Accès aux données Salesforce via les API REST

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Instancier une requête REST avec la classe RestClient
  • Émettre une requête REST asynchrone avec les classes RestClient et RestRequest
  • Recevoir et traiter une réponse REST avec la classe RestResponse

Utilisation des API REST

Lorsque vous êtes prêt à accéder aux données Salesforce dans votre application, vous appelez les Salesforce. Généralement, les API REST sont relativement accessibles. Ainsi, les développeurs peuvent y accéder manuellement via des appels réseau rudimentaires. Toutefois, cela ne vous concerne pas : le kit de développement Mobile SDK se charge des tâches fastidieuses pour vous.

Voici un résumé des classes qui gèrent les appels des API REST. Toutes ces classes résident dans le package com.salesforce.androidsdk.rest.

  • ClientManager : sert de fabrique pour les instances RestClient. Elle gère également les connexions au compte et les liaisons avec le serveur Salesforce.
  • RestClient : gère le protocole permettant d’envoyer les requêtes d’API REST au serveur Salesforce.
    Ne créez pas directement d’instances de RestClient. À la place, appelez la méthode SalesforceSDKManager.getInstance().getRestClient().
  • RestRequest : représente les requêtes d’API REST formatées à partir des données que vous fournissez. Elle sert également de fabrique pour ses instances.
Note

Ne créez pas directement d’instances de RestRequest. Appelez plutôt une fonction d’obtention statique appropriée RestRequest, telle que RestRequest.getRequestForCreate().

  • RestResponse : contient la réponse au format demandé. La classe RestRequest crée des instances RestResponse et les renvoie à votre application par le biais de l’implémentation de l’interface RestClient.AsyncRequestCallback.
  1. L’application appelle une méthode statique dans la classe RestRequest pour créer une instance RestRequest configurée.
  2. L’application transmet la nouvelle instance RestRequest et une instance de l’interface AsyncRequestCallback à la méthode RestClient.sendAsync().
  3. Le kit de développement Mobile SDK envoie la requête REST présentée dans l’objet RestRequest au service Cloud de Salesforce.
  4. Salesforce traite la requête et renvoie une réponse JSON à l’application.
  5. Le kit de développement Mobile SDK insère la réponse JSON dans un nouvel objet RestResponse.
  6. Mobile SDK transmet le nouvel objet RestResponse à l’implémentation AsyncRequestCallback de l’application pour consommation.

Vous suivez toujours ? Laissons de côté le niveau conceptuel pour observer l’activité de ces informations dans votre véritable application.

La méthode sendRequest()

Votre classe MainActivity envoie des requêtes REST, puis utilise les réponses REST pour renseigner sa vue de liste. Revenons au code MainActivity pour suivre ce flux.

  1. Dans la fenêtre du projet Android Studio, développez app | src | com.mytrail.android.
  2. Double-cliquez sur MainActivity.
  3. Recherchez la méthode onFetchContactsClick. Vous remarquerez que cette petite méthode appelle une méthode sendRequest() avec une instruction SOQL.
fun onFetchContactsClick(v: View) {
    sendRequest("SELECT Name FROM Contact")
}
  1. Faites un clic droit sur sendRequest, puis sélectionnez Go To (Accéder à) | Implementation(s) (Implémentation[s]). Il s’avère que sendRequest() est une méthode privée dans votre classe MainActivity. Une bonne nouvelle, car elle vous appartient. Nous allons la modifier plus loin !

Dans la méthode sendRequest(), vous pouvez voir en action les classes REST du kit de développement Mobile SDK. Ici, les principaux acteurs sont :

  • client : une instance privée, délimitée par une classe, de RestClient. Cet objet est automatiquement instancié durant l’initialisation de l’application
  • restRequest : une nouvelle instance RestRequest
  • RestRequest.getRequestForQuery() : une méthode de fabrique RestRequest statique qui crée l’instance RestRequest
  • AsyncRequestCallback : l’implémentation de l’interface de rappel de la réponse REST de votre application

Création de la requête REST

Dans sendRequest(), la méthode de fabrique RestRequest.getRequestForQuery() traite une chaîne SOQL et l’enveloppe dans un objet RestRequest.

val restRequest = RestRequest.getRequestForQuery(ApiVersionStrings.getVersionNumber(this), soql)

L’avantage de l’utilisation de méthodes de fabrique RestRequest est que l’objet ainsi généré est prêt à être utilisé sur le réseau : il connaît déjà les paramètres HTTP attendus par le serveur Salesforce.

Envoi de la requête REST

Pour envoyer la requête à Salesforce, vous transmettez l’objet RestRequest à la méthode RestClient.sendAsync().

client!!.sendAsync(restRequest, object : AsyncRequestCallback
    {
    ...

Le code du kit de développement Mobile SDK crée pour vous l’objet client tout en initialisant votre activité. Le deuxième paramètre, de type AsyncRequestCallback, est une instance d’une interface virtuelle conçue pour recevoir des réponses REST. Dans cet exemple, AsyncRequestCallback est implémenté et instancié en ligne.

Ici, le préfixe async est toujours présent. Il doit avoir une importance, non ? Lorsque vous envoyez une requête de façon asynchrone, cela signifie que le code de votre application ne s’interrompt pas pour attendre la réponse. Lorsque la réponse arrive, le kit de développement Mobile SDK appelle l’une de vos méthodes de rappel, et l’application suspend brièvement son activité pour traiter la réponse. Vous devez envoyer les requêtes de façon asynchrone lorsque votre code est exécuté dans le thread principal (interface utilisateur) .

Capture et traitement de la réponse REST

Lorsque Salesforce renvoie la réponse REST, l’objet RestClient la transmet à votre implémentation AsyncRequestCallback. Dans l’interface AsyncRequestCallback, vous définissez comment votre application gère la réponse REST provenant de Salesforce. Vous traitez les réponses REST réussies dans la méthode onSuccess().

override fun onSuccess(request: RestRequest, result: RestResponse) {
    result.consumeQuietly() // consume before going back to main thread
    runOnUiThread {
        try {
            listAdapter!!.clear()
            val records = result.asJSONObject().getJSONArray("records")
            for (i in 0..<records.length()) {
                listAdapter!!.add(records.getJSONObject(i).getString("Name"))
            }
        } catch (e: Exception) {
            onError(e)
        }
    }
}

Ensuite, vous vous occupez avec brio des requêtes échouées dans la méthode onError().

override fun onError(exception: Exception) {
    runOnUiThread {
        Toast.makeText(this@MainActivity,
                this@MainActivity.getString(R.string.sf__generic_error),
                Toast.LENGTH_LONG,
        ).show()
    }
}

Notez que la réponse REST arrive sous le format JSON. Par conséquent, elle est facile à analyser avec un code écrit par une personne. Si la requête réussit, l’application extrait les valeurs du champ Name et renseigne la vue de liste de l’interface utilisateur. Si la requête échoue, l’application affiche un message d'erreur flottant.

Ressources

Partagez vos commentaires sur Trailhead dans l'aide Salesforce.

Nous aimerions connaître votre expérience avec Trailhead. Vous pouvez désormais accéder au nouveau formulaire de commentaires à tout moment depuis le site d'aide Salesforce.

En savoir plus Continuer à partager vos commentaires