Von KI übersetzt. Noch nicht von der Community geprüft. Auf Englisch lesen

Blog · 18. September 2023 · Steve Simpson · Integration

Apex-Webdienste: Bausteine für Web-Zauberer:innen

Einführung:

In diesem Beitrag gehe ich darauf ein, wie man benutzerdefinierte Apex-Webdienste in Salesforce baut. Diese Dienste sind entscheidend, wenn ein externer Prozess mit Salesforce interagieren muss, um Daten zu lesen oder zu schreiben, und die Standard-REST-API nicht ausreicht. Wir gehen fünf Beispiele mit steigender Komplexität durch, von Standardabfragen bis zu Aktualisierungen.

Diagramm: fünf Beispiele benutzerdefinierter Apex-Webdienste, aufgerufen aus Postman: GET, das eine Liste von Datensätzen zurückgibt, GET mit Antwortobjekt, GET mit Parameter, POST und POST mit Fehler

Überblick über benutzerdefinierte Webdienste

Wir sehen uns fünf Beispiele benutzerdefinierter Webdienste an:

GET mit einer Standard-SObject-Liste: Daten mit einer Standard-SObject-Liste abrufen.

Wrapper mit JSON-Antwort: die GET-Anfrage verbessern, indem man sie in eine JSON-Antwort verpackt.

Parameter hinzufügen: der GET-Anfrage Parameter mitgeben, um gezieltere Daten abzurufen.

POST zum Einfügen: eine POST-Anfrage zum Einfügen von Daten umsetzen.

Fehlermeldungen zurückgeben: Fehlermeldungen sauber behandeln und zurückgeben.

Benutzerdefinierte Webdienste umsetzen

Beispiel 1: GET mit einer Standard-SObject-Liste

In diesem Beispiel definieren wir eine REST-Ressource mit einer benutzerdefinierten URI und geben das HTTP-Verb (GET) an. Die Klasse muss als global deklariert werden, und wir geben mit einer einfachen Abfrage eine Liste von Standard-Accounts zurück.

Apex-Code: eine REST-Ressource mit einer GET-Methode, die Accounts abfragt und die Liste mit Standardserialisierung zurückgibt

Beispiel 2: Wrapper mit JSON-Antwort

Um die Daten zu steuern, die an den Client zurückgehen, verwenden wir ein Antwortobjekt. Statt einer Liste von SObjects geben wir eine Liste benutzerdefinierter Antwortobjekte zurück, eine schlanke Darstellung eines Kunden mit nur ID und Name.

Apex-Code: eine GET-Methode, die ein Antwortobjekt mit einer Kundenliste aufbaut

Beispiel 3: Parameter hinzufügen

Parameter sind unverzichtbar, wenn Sie Daten zu einem bestimmten Kunden brauchen. Über RestContext.params können Sie die Kunden-ID auslesen und in der WHERE-Klausel der SOQL-Abfrage zum Filtern verwenden.

Apex-Code: eine GET-Methode, die einen customerid-Parameter aus der Anfrage liest und diesen Kunden in einem Antwortobjekt zurückgibt

Beispiel 4: POST zum Einfügen

Wenn Sie Daten schreiben müssen, verwenden Sie eine POST-Methode. In diesem Beispiel erstellen wir ein Antwortobjekt und ein Anfrageobjekt. Das Anfrageobjekt erhält einen Kunden mit Namen, und wir nutzen den JSON-Serializer, um die Anfrage in eine bestimmte Klasse zu serialisieren. Nach dem Anlegen und Einfügen eines neuen Accounts wird ein Erfolgsstatus zurückgegeben.

Apex-Code: eine POST-Methode, die den Anfragetext parst, einen Account einfügt und einen Erfolgs- oder Fehlerstatus zurückgibt

Beispiel 5: Fehlermeldungen zurückgeben

Dieses Beispiel ähnelt Beispiel 4, enthält aber eine Fehlerbehandlung. Tritt eine Ausnahme auf, wird der Fehler abgefangen, einer Liste hinzugefügt und der Statuscode auf 500 gesetzt (oder eine beliebige andere Zahl).

Apex-Code: die POST-Methode mit Fehlerbehandlung, die die Fehlermeldung und den HTTP-Statuscode 500 zurückgibt

Fazit

Mit diesen Beispielen haben wir die grundlegenden Bausteine für benutzerdefinierte Apex-Webdienste in Salesforce gezeigt. Ausgehend von einer einfachen GET-Anfrage haben wir die Komplexität schrittweise erhöht, mit Parametern, POST-Anfragen und Fehlerbehandlung.

Bleiben Sie dran

Danke fürs Lesen, ich freue mich darauf, bald weitere wissensreiche Abenteuer mit Ihnen zu teilen! Bleiben Sie dran hier auf www.SteveTechArc.com und auf dem YouTube-Kanal @SteveTechArc (opens in a new tab). Abonnieren Sie und vertiefen Sie Ihr Verständnis von Salesforce und davon, wie Sie es mit anderen Systemen integrieren.

Die Welt ein Stück verändern, indem ich Wissen über Integration mit anderen Architekt:innen und allen auf dem Weg dorthin teile!

Transkript mit Unterstützung von KI

STA 1.8