Skip to main content

Verwenden der REST-API

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
  • Anmelden bei der Anwendung Postman und Navigieren zum Ordner "REST" in "Salesforce API Collection"
  • Verwenden der Ressource "GET SObject Describe"
  • Erstellen eines Accounts unter Verwendung der REST-API
  • Ausführen einer Abfrage mit der REST-API
Hinweis

Hinweis

Lernen Sie auf Deutsch? Beginnen Sie die Aufgabe in einem Trailhead Playground in der Sprache Deutsch und verwenden Sie für die Navigation die in Klammern angegebenen Übersetzungen. Kopieren und fügen Sie nur die Angaben in Englisch ein, da zur Überprüfung der Aufgabe Daten in Englisch benötigt werden. Wenn Sie die Aufgabe in Ihrer deutschen Organisation nicht bestehen, empfehlen wir Ihnen folgende Vorgehensweise: (1) Stellen Sie das Gebietsschema auf USA um, (2) legen Sie Englisch als Sprache fest (Anweisungen dazu finden Sie hier) und (3) klicken Sie erneut auf die Schaltfläche "Check Challenge" (Aufgabe überprüfen).

Weitere Details dazu, wie Sie die übersetzte Trailhead-Umgebung optimal nutzen können, finden Sie unter dem Badge "Trailhead in Ihrer Sprache".

REST-Ressourcen und -Methoden

Land in Sicht! Kapitän, der Ausguck meldet "Insel REST voraus". Bevor wir ankern und die API verwenden, sollten wir einen Blick auf die REST-Ressourcen und -Methoden werden.

Eine REST-Ressource stellt eine Abstraktion einer Information oder Aktion dar, wie etwa ein einzelner Datensatz, eine Sammlung von Datensätzen oder eine Abfrage. Jede Ressource in der REST-API wird durch einen benannten URI (Uniform Resource Identifier) identifiziert. Der Zugriff auf Ressourcen erfolgt mit standardmäßigen HTTP-Methoden (HEAD, GET, POST, PATCH, DELETE). Die REST-API basiert auf der Nutzung von Ressourcen, ihrer URIs und den Links zwischen ihnen.

Sie verwenden eine Ressource für die Interaktion mit Ihrer Salesforce-Organisation. Beispielsweise haben Sie folgende Möglichkeiten:
  • Abrufen von zusammenfassender Informationen über die API-Versionen, die Ihnen zur Verfügung stehen
  • Abrufen detaillierter Informationen über ein Salesforce-Objekt wie z. B. Account, Benutzer oder ein benutzerdefiniertes Objekt
  • Durchführen einer Abfrage oder Suche
  • Aktualisieren oder Löschen von Datensätzen

Eine REST-Anforderung besteht aus vier Komponenten: einem Ressourcen-URI, einer HTTP-Methode, Anforderungs-Headern und einem Anforderungstext. Anforderungs-Header geben Metadaten für die Anforderung an. Der Anforderungstext gibt, falls notwendig, Daten für die Anforderung an. Wenn keine Daten angegeben werden müssen, wird der Anforderungstext weggelassen.

Bevor Sie fortfahren

Sie verwenden jetzt Postman, um einige API-Aufrufe zu erstellen. Sie können REST-Anforderungen über einen beliebigen HTTP-Absender stellen. Und Postman ist nur eines von vielen Tools, die Sie für die Interaktion mit Ihrer Salesforce-Organisation über die API einsetzen können.  

Der erste Schritt besteht darin, einen neuen Trailhead Playground zu erstellen, ihn mit der Anwendung Postman zu verbinden, CORS (Cross-Origin Resource Sharing) einzurichten und einen Fork zur Salesforce API Collection zu erstellen. Absolvieren Sie hierfür Schnelleinstieg: Verbinden von Postman mit Salesforce

Sie können wie bei jeder anderen HTTP-Schnittstelle REST-API-Aufrufe an Ihren Trailhead Playground richten, indem Sie die Ressourcen in der Anwendung Postman unter "Salesforce API Collection" im Ordner "REST" verwenden. Wenn Sie in der Salesforce API Collection eine Ressource auswählen, wird der URI im oberen Bereich des Hauptfensters angezeigt. 

Beschreiben des Objekts "Account"

Sehen wir uns nun an, wie dies funktioniert.

Sie verwenden die Ressource "SObject Describe". Diese Ressource gibt in Kombination mit der GET-Methode Metadaten über ein Objekt und seine Felder zurück. Lassen Sie uns das Objekt "Account" beschreiben. 

  1. Wählen Sie in "Collections" Ihren Fork der Salesforce APIs Collection aus.
  2. Klicken Sie auf den Ordner REST.
  3. Klicken Sie auf SObject.
  4. Klicken Sie auf GET SObject Describe.
  5. Öffnen Sie im Hauptbereich die Registerkarte Params (Parameter).
  6. Geben Sie unter "Path Variables" (Pfadvariablen) in der Zeile SOBJECT_API_NAME der Spalte VALUE Account ein.

Postman-Anforderungsfenster mit dem URI für 'SObject Describe'.


Ehe Sie sich die Ergebnisse Ihrer Abfrage ansehen, lassen Sie uns kurz den URI dieser Ressource aufschlüsseln.

  • GET: die für diesen API-Aufruf verwendete HTTP-Methode.
  • {{_endpoint}}: die Stelle, an der die Anforderung erfolgt. In diesem Fall haben Sie den URL Ihres Trailhead Playgrounds in das Feld "_endpoint" in den Variablen zum Herstellen einer Verbindung mit Salesforce eingefügt.
  • /services/data: gibt an, dass Sie eine REST-API-Anforderung stellen.
  • /v {{version}}: die API-Versionsnummer. Die doppelten geschweiften Anführungszeichen bedeuten, dass diese Einstellung als Variable festgelegt werden kann.
  • /sobjects: gibt an, dass wir auf eine Ressource unter der Gruppierung "sObject" zugreifen.
  • /:SOBJECT_API_Name: das sObject, für das die Aktion erfolgt, in diesem Fall "Account".
  • /describe: eine Aktion, in diesem Fall eine Describe-Anforderung.
     7. Klicken Sie auf Save (Speichern).
     8. Klicken Sie auf Send (Senden).

Antwortfenster in Postman mit Metadaten zum Objekt 'Account'.

Gut gemacht, Kapitän! Die Metadaten für "Account" werden auf dem Bildschirm angezeigt und Postman hat die Antwort ansehnlich formatiert. Wenn Sie die JSON-Antwort in Rohformat sehen möchten, klicken Sie auf Raw (Rohformat).

Die Metadaten für "Account" werden im JSON-Format angezeigt. Da die REST-API sowohl JSON als auch XML unterstützt, ändern wir nun den Anforderungs-Header, damit wir eine XML-Antwort erhalten. 

  1. Klicken Sie im Anforderungsfenster auf Headers (Header).
  2. Fügen Sie einen neuen Header mit Accept als Key (Schlüssel) und application/xml als Value (Wert).

Ihre Anforderungs-Header sehen nun wie folgt aus.

Anforderungsfenster in Postman mit auf 'application/xml' festgelegtem Wert des Felds 'Headers'.

     3. Klicken Sie auf Send (Senden).

Die XML-Rohantwort wird zurückgegeben. Hurra!

Erstellen eines Accounts

Jetzt erstellen wir ein Account mit der SObject-Ressource und der POST-Methode. 

So erstellen Sie einen Account:

  1. Wählen Sie unter REST erst SObject und dann POST SObject Create aus.
  2. Öffnen Sie die Registerkarte Params (Parameter).
  3. Geben Sie unter "Path Variables" (Pfadvariablen) in der Zeile SOBJECT_API_NAME der Spalte VALUE Account ein.
  4. Öffnen Sie die Registerkarte Body (Textkörper).
  5. Ersetzen Sie den Textkörper durch diesen Code:
{
"Name": "Captain Bly’s Finest Treasure Chests",
"ShippingCity": "Lisbon"
}

Anforderungsfenster in Postman mit dem SObject POST-URI und Details im Feld 'Body' (Textkörper) des erstellten Accounts.

6. Klicken Sie auf Save (Speichern).
7. Klicken Sie auf Send (Senden).

Antwortfenster in Postman mit der ID des erstellten Accounts.

Bei "success: true" wurde der Account mit der zurückgegebenen ID erstellt. 

Lassen Sie uns jetzt spaßeshalber einen zweiten Account erstellen, ohne einen Accountnamen anzugeben. 

  1. Ersetzen Sie den Text im Anforderungstextbereich durch folgenden Text.
{
"ShippingCity" : "Melbourne"
}

Antwortfenster in Postman mit neuen Details eines neuen Accounts.

2. Klicken Sie auf Send (Senden).

Oje. Haben Sie die Antwort "Required fields are missing: [Name]" (Pflichtfelder fehlen: [Name]) erhalten? 

Antwortfenster in Postman mit dem Fehler, dass das Feld 'Name' in der Anforderung fehlt.

Da "Name" ein Pflichtfeld beim Erstellen eines Accounts ist, hat der Server die Anforderung nicht verarbeitet und eine Fehlermeldung zurückgegeben. Glücklicherweise sind alle Informationen, die zum Beheben des Fehlers notwendig sind, in der Fehlerantwort angegeben. Geben Sie nun im Anforderungstext den Accountnamen an: Pirate Pete’s Parrot Pellets 

  1. Ersetzen Sie den Text im Anforderungstextbereich durch folgenden Text.
{
"Name": "Pirate Pete's Parrot Pellets",
"ShippingCity": "Melbourne"
}

     2. Klicken Sie auf Save (Speichern).
3. Klicken Sie auf Send (Senden).

Geschafft!

Ausführen einer Abfrage

Stellen wir uns nun einmal vor, Sie oder ein anderer Benutzer haben Hunderte Accounts erstellt. Sie möchten die Namen aller Accounts feststellen, bei denen der Ort in der Lieferanschrift "Melbourne" lautet. Sie können mithilfe der Ressource "Query" eine SOQL-Abfrage auszuführen, um genau wie bei einer angepassten Schatzkarte die gewünschten Datensätze zu finden.

  1. Wählen Sie unter "REST" GET Query aus.
  2. Öffnen Sie die Registerkarte Params (Parameter).
  3. Fügen Sie unter "Query Params" (Abfrageparameter) in der Zeile "q" in der Spalte "VALUE" den folgenden Text ein.
SELECT Name From Account WHERE ShippingCity = 'Melbourne'

Das Anforderungsfenster von Postman mit der Registerkarte 'Params', auf der der Wert q für KEY nach den Namen der Accounts fragt, für die Melbourne die 'Lieferanschrift Stadt' ist.

4. Klicken Sie auf Save (Speichern).
5. Klicken Sie auf Send (Senden).

Die Abfrage gibt den Account zurück, den Sie zuvor erstellt haben: Pirate Pete’s Parrot Pellets. Gut gemacht, Kapitän!

Sehen wir uns die Attribute an. Neben "url" befindet sich der Ressourcen-URI des Accounts, der zurückgegeben wurde. Ihre Antwort sieht etwa wie folgt aus.

Antwortfenster von Postman mit einem zurückgegebenen Account mit Melbourne als 'Lieferanschrift Stadt'. Dieser Account ist Pirate Pete’s Parrot Pellets.

Wenn Sie eine Integrationslösung schreiben, können Sie diesen URI aus der Antwort verwenden, um auf weitere Details über diesen Account zuzugreifen.

Beispiele für Node.js und Ruby

Sie haben jetzt gerade einen Vorgeschmack darauf bekommen, was mit der REST-API alles möglich ist. Wenn Sie von Postman zum Schreiben von Code wechseln, interagieren Sie mit der REST-API natürlich mit der Programmiersprache Ihrer Wahl. Glücklicherweise haben erfahrene Salesforce-Entwickler Wrapper für verschiedene Sprachen geschrieben, die das Einspeisen von REST-API erleichtern. Im Folgenden finden Sie zwei in Node.js und Ruby geschriebene Beispielabfragen, die die Wrapper JSforce bzw. Restforce verwenden.

Node.js-Beispiel mit JSforce

const jsforce = require("jsforce");const conn = new jsforce.Connection({
  // you can change loginUrl to connect to sandbox or prerelease env.
  // loginUrl : "https://test.salesforce.com"
});
// Log in with basic SOAP login (see documentation for other auth options)
conn.login(
  process.env.USERNAME,
  process.env.PASSWORD + process.env.SECURITY_TOKEN,
  (err, res) => {
    if (err) {
      return console.error("Failed to log in to Salesforce: ", err);
    }
    console.log("Successfully logged in!");
    // Run a SOQL query
    conn.query("SELECT Id, Name FROM Account LIMIT 5", (err, result) => {
      if (err) {
        return console.error("Failed to run SOQL query: ", err);
      }
      // Display query results
      const { records } = result;
      console.log(`Fetched ${records.length} records:`);
      records.forEach(record => {
        console.log(`- ${record.Name} (${record.Id})`);
      });
    });
  }
);

Ruby-Beispiel mit Restforce

require 'restforce'
# create the connection with the Salesforce connected app
client = Restforce.new :username => ENV['USERNAME'],
  :password       => ENV['PASSWORD'],
  :security_token => ENV['SECURITY_TOKEN'],
  :client_id      => ENV['CLIENT_ID'],
  :client_secret  => ENV['CLIENT_SECRET']
# execute the query
accounts = client.query("select id, name from account limit 5")
# output the account names
accounts.each do |account|
  p account.Name
end
Teilen Sie Ihr Trailhead-Feedback über die Salesforce-Hilfe.

Wir würden uns sehr freuen, von Ihren Erfahrungen mit Trailhead zu hören: Sie können jetzt jederzeit über die Salesforce-Hilfe auf das neue Feedback-Formular zugreifen.

Weitere Infos Weiter zu "Feedback teilen"