Wie integriere ich externe APIs in eine Salesforce App?
- Einführung in die API-Integration in Salesforce
- Vorbereitung und Konfiguration in Salesforce
- Einbindung externer APIs mit Apex
- Beispiel für eine API-Anfrage in Apex
- Integration im Salesforce UI und Automatisierung
- Sicherheits- und Performance-Aspekte
- Alternativen und weitere Möglichkeiten
- Fazit
Einführung in die API-Integration in Salesforce
Die Integration externer APIs in eine Salesforce App ermöglicht es, Daten aus anderen Systemen in Salesforce zu nutzen oder Salesforce-Daten an andere Plattformen zu übertragen. Salesforce bietet verschiedene Werkzeuge und Möglichkeiten, um REST-basierte oder SOAP-basierte APIs zu integrieren. Dabei können sowohl deklarative Tools als auch programmatische Ansätze verwendet werden, je nach Komplexität und Anforderungen der Integration.
Vorbereitung und Konfiguration in Salesforce
Bevor eine externe API genutzt werden kann, müssen bestimmte Konfigurationen in Salesforce vorgenommen werden. Zunächst sollte die URL der externen API in den sogenannten "Remote Site Settings" eingetragen werden. Dies ist notwendig, weil Salesforce aus Sicherheitsgründen nur Verbindungen zu vertrauenswürdigen externen URLs zulässt. Über Setup → Sicherheit → Remote Site Settings kann man eine neue Remote Site anlegen und die Basis-URL der API eintragen.
Wenn die API eine Authentifizierung benötigt, ist es wichtig, sich vorab mit dem Authentifizierungsverfahren vertraut zu machen. Häufig werden OAuth 2.0, API-Schlüssel oder Basic Authentication verwendet. Salesforce bietet auch Named Credentials an, um Authentifizierungsdetails sicher und zentral zu verwalten. Named Credentials erleichtern den Zugriff auf externe Dienste, da sie Authentifizierungsmechanismen kapseln und in Apex-Code einfach referenzierbar sind.
Einbindung externer APIs mit Apex
Der häufigste Weg, um externe APIs in Salesforce zu integrieren, ist die Nutzung von Apex Code. Apex erlaubt, HTTP-Anfragen an die API zu senden und die Antworten zu verarbeiten. Dafür verwendet man Klassen wie Http, HttpRequest und HttpResponse. Zunächst wird eine HttpRequest erstellt, die Methode (GET, POST, PUT etc.) ausgewählt, URL gesetzt und bei Bedarf Header und Body hinzugefügt.
Nach dem Absenden der Anfrage mittels Http.send() erhält man ein HttpResponse-Objekt, aus dem der Statuscode, Header und der Antwort-Body ausgelesen werden können. Häufig liegen die Daten im JSON-Format vor, sodass mit der Klasse JSON die Daten in Apex-Objekte deserialisiert werden können, um sie weiterzuverarbeiten oder in Salesforce-Datensätzen zu speichern.
Beispiel für eine API-Anfrage in Apex
Um ein besseres Verständnis zu erhalten, hier eine vereinfachte Beispielmethode, die eine GET-Anfrage an eine externe API schickt und das Ergebnis verarbeitet:
public with sharing class ExternalApiService { public String fetchData() { Http http = new Http(); HttpRequest request = new HttpRequest(); request.setEndpoint(https://api.beispiel.com/data); request.setMethod(GET); // Optional: Header oder Authentifizierung hinzufügen // request.setHeader(Authorization, Bearer + accessToken); HttpResponse response = http.send(request); if (response.getStatusCode() == 200) { // Antwortbody verarbeiten, z.B. JSON deserialisieren String jsonResponse = response.getBody(); // Hier könnte man das JSON in Apex-Objekte umwandeln return jsonResponse; } else { // Fehlerbehandlung System.debug(Fehler bei API-Aufruf: + response.getStatus()); return null; } }}Integration im Salesforce UI und Automatisierung
Nachdem die API-Daten per Apex abgeholt wurden, können diese in Salesforce-Objekten gespeichert, in Lightning Komponenten angezeigt oder für Geschäftsprozesse genutzt werden. Die API-Aufrufe lassen sich auch automatisieren, zum Beispiel mit geplanten Apex-Jobs (Scheduled Apex) oder als Reaktion auf bestimmte Events durch Trigger oder Flow-Aktionen. Für Benutzeroberflächen bieten Lightning Web Components (LWC) oder Aura-Components die Möglichkeit, die API-Daten dynamisch darzustellen.
Sicherheits- und Performance-Aspekte
Beim Zugriff auf externe APIs sollte immer die Sicherheit beachtet werden. Sensible Zugangsdaten sollten niemals hardcodiert im Code stehen, sondern über Named Credentials oder verschlüsselte Custom Settings verwaltet werden. Zudem sind Limits im Salesforce-System wie der maximale API-Aufruf pro 24 Stunden und Ausführungszeit zu beachten. Bei großen Datenmengen empfiehlt sich eine asynchrone Verarbeitung mittels Batch Apex oder Queueable Apex, um das System nicht zu blockieren.
Alternativen und weitere Möglichkeiten
Neben Apex können externe APIs auch über Salesforce-Integrationslösungen wie Salesforce Connect (für externe Datenquellen), Middleware-Plattformen (z.B. MuleSoft, Dell Boomi) oder über Flow und External Services eingebunden werden. Insbesondere External Services erlauben es, REST-APIs deklarativ in Flows ohne manuellen Code zu integrieren, indem OpenAPI-Spezifikationen importiert werden.
Fazit
Die Integration externer APIs in eine Salesforce App ist ein mächtiges Mittel, um externe Daten und Dienste direkt in Salesforce zu nutzen. Durch die Kombination von Konfiguration (Remote Site Settings, Named Credentials) und programmatischem Zugriff via Apex ist eine flexible und stabile Integration möglich. Wichtig sind eine gute Planung, Verständnis der API-Spezifikationen und die Beachtung von Sicherheits- und Performance-Aspekten, um den bestmöglichen Nutzen aus der Integration zu ziehen.
