Erste Schritte mit der User Interface API
Lernziele
- Erläutern, wie die User Interface API zur Salesforce Platform passt
- Beschreiben, wann die User Interface API verwendet werden sollte
- Beschreiben, wann die User Interface API nicht verwendet werden sollte
Zugriff auf die Salesforce Platform auf Ihrer Wissensstufe
Ein riesiges Plus von Salesforce ist, dass Sie die Plattform so anpassen können, dass Sie zu Ihnen und Ihren Kunden passt. Als wir beschlossen, unsere Benutzeroberfläche neu zu erstellen, haben wir sie nicht nur optisch neu gestaltet, sondern eine leistungsstarke Plattform entwickelt, die Ihnen noch mehr Zugriff und Anpassungsmöglichkeiten für Salesforce bietet. Wir gaben ihr den Namen "Lightning".
Lightning umfasst die Salesforce-Benutzerumgebung (Lightning Experience), die Plattform und das UI-Framework (Lightning Web Component-Framework). Mit Lightning können Sie Salesforce auf der Ebene anpassen, die Ihren Fähigkeiten und Anforderungen entspricht, da Sie hier Zugriff auf verschiedene Schichten der Salesforce-Plattform erhalten. In diesem Modul stellen wir den Zugriff auf die Plattform über die User Interface API vor, die Lightning Experience verwendet, um Daten und Metadaten von Salesforce zu erhalten.
Zum Hintergrund: Für die Entwicklung von Lightning Experience brauchten wir eine neue API. Unsere bestehende API bot nicht die notwendigen Zugriffsmöglichkeiten und war für die Datenintegration und nicht für die Erstellung von Benutzeroberflächen konzipiert worden. Und so wurde an einem warmen, wolkenlosen Tag die User Interface API (auch kurz UI API genannt) geboren.
In enger Zusammenarbeit mit unseren internen Salesforce-Entwicklern ermittelten wir, welche Aufgaben schwierig und zeitaufwändig waren, und lösten diese Probleme. Wir haben diese neue REST-API veröffentlicht, was bedeutet, dass Sie Webanwendungen und mobile Anwendungen mit derselben API erstellen können, die Salesforce zum Erstellen von Lightning Experience und den Salesforce-Anwendungen für Android und iOS verwendet.
Auf Tour im Lightning-Technologiestapel
Sie haben viele Möglichkeiten, auf Lightning zuzugreifen, um Salesforce-Anwendungen zu erstellen, die Ihnen und Ihren Kunden das Leben erleichtern. Schauen wir uns die Schichten des Lightning-Technologiestapels an, um zu verstehen, wo sich die User Interface API befindet und wann sie zu verwenden ist.
Je höher Sie im Stapel gehen, desto mehr erledigt die Lightning Platform für Sie und desto einfacher wird die Entwicklung. Ganz oben im Stapel wird kein Code mehr geschrieben, sondern gezeigt und geklickt. Ganz unten im Stapel wird jede Menge Code geschrieben.
- Ziehen Sie vordefinierte Lightning-Webkomponenten in den Lightning-Anwendungsgenerator.
- Entwickeln Sie benutzerdefinierte Lightning-Webkomponenten.
- Verwenden Sie Lightning Data Service, um auf Salesforce-Daten in Lightning-Webkomponenten zuzugreifen.
- Nutzen Sie die User Interface API, um benutzerdefinierte Web- und mobile Anwendungen zu erstellen, die sich von außerhalb der Salesforce-Plattform mit Salesforce verbinden.
Sehen wir uns die obere Stapelschicht an, in der Sie keinen Code schreiben müssen. Lightning-Basiskomponenten wie Schaltfläche, Eingabe und Symbol sind die UI-Bausteine. Im Lightning-Anwendungsgenerator können Sie ohne jeglichen Code Komponenten kombinieren, um Anwendungen zu erstellen, die innerhalb von Salesforce angesiedelt sind. Sie können auch eigenständige Anwendungen erstellen, die auf der Salesforce-Plattform gehostet werden.
Auf weiter unten folgenden Stapelschichten können Sie eigene Lightning-Webkomponenten erstellen. Ohne viel Codierung ermöglicht Ihnen der Lightning Data Service, Datensätze zu erstellen, zu lesen, zu aktualisieren und zu löschen. Der Lightning Data Service nutzt die UI API (die im Stapel direkt darunter folgt), um Daten aus Salesforce zu erhalten. Der LDS wartet mit Caching auf, sodass weniger Serverabfragen notwendig werden und wie von Zauberhand alle Datensätze aktualisiert werden, die dieselben Daten nutzen.
Die Grundlage des Lightning-Stapels ist die User Interface API, die Ihnen Nutzlasten an Salesforce-Daten und Metadaten bietet, die für die UI-Erstellung strukturiert sind. Verwenden Sie Ihr bevorzugtes Web-Framework oder Ihre Lieblings-Sprache, um jede beliebige benutzerdefinierte Web- oder native mobile Anwendung zu erstellen, die Sie sich vorstellen können. React, Vue, Angular, iOS, Android... – wenn HTTP-Anforderungen möglich sind, können Sie die User Interface API verwenden.
User Interface API macht UI-Entwicklung leicht
Salesforce bietet viele APIs, und es kann schwer sein zu entscheiden, welches Tool jeweils das beste ist. Wenn Sie eine benutzerdefinierte Web- oder mobile Anwendung erstellen und eine Benutzeroberfläche benötigen, mit der Benutzer Salesforce-Datensätze anzeigen, erstellen, bearbeiten und löschen können – eine Benutzeroberfläche, die aussieht und sich verhält wie Salesforce – dann ist die UI API das richtige Mittel.
Wenn Sie eine Benutzeroberfläche erstellen, mit der Benutzer abhängige Auswahllisten und Nachschlagesuchen bearbeiten können, ist die User Interface API definitiv das richtige Mittel. Die User Interface API bietet eine Ressource, die das Ganze deutlich einfacher macht.
Wie bereits erwähnt, nutzt Salesforce die User Interface API zum Erstellen von Lightning Experience. Die UI API wird von einer internen Salesforce-Entwicklergruppe für eine andere interne Salesforce-Entwicklergruppe entwickelt, die Lightning Experience entwickelt. Und wir sind schon total gespannt darauf zu sehen, was Sie damit entwickeln werden!
Seien wir ehrlich: Die Salesforce-Benutzeroberfläche ist komplex. Die richtige Benutzeroberfläche für einen bestimmten Benutzer hängt von verschiedenen Regeln, Berechtigungen und Seitenlayout-Konfigurationen ab. Ein Administrator kann diese Abhängigkeiten ändern und an die Geschäftsanforderungen anpassen. Beispielsweise kann ein Administrator Felder in Seitenlayouts hinzufügen oder entfernen, Felder als Pflichtfelder kennzeichnen und Seitenlayouts Profilen zuweisen.
Früher war es schwierig, eine dynamische Benutzeroberfläche für die Arbeit mit Datensätzen in benutzerdefinierten Anwendungen zu erstellen, da man Code schreiben musste, um die Benutzeroberfläche zu aktualisieren, wenn ein Administrator Metadatenänderungen an der Organisation vorgenommen hat.
Das ist einer der Gründe, aus denen die UI API entwickelt haben und bei jeder Version neue Funktionen hinzufügen. Die UI API macht es einfach, eine benutzerdefinierte Benutzeroberfläche gemäß den Regeln und Berechtigungen innerhalb einer Salesforce-Organisation zu erstellen, da die Benutzeroberfläche auf Metadatenänderungen zur Laufzeit reagiert. Das möchten wir sicherheitshalber noch einmal wiederholen: Sie müssen Ihre Anwendung nicht ändern, wenn ein Administrator Berechtigungen, Layouts, Feldebenensicherheit oder Freigaberegeln ändert. Sie müssen noch nicht einmal Code schreiben, der nach diesen Dingen sucht – die UI API erledigt das für Sie.
Bevor es die UI API gab, mussten Sie viele Aufrufe durchführen, um die notwendigen Informationen für das Layout (wo sich die Felder auf der Seite befinden), die Metadaten (welche Felder hat ein Objekt, und sind sie erforderlich) und die Datensatz (was sind die Feldwerte) zu erhalten. Heute führt die UI API diese Aufrufe für Sie durch und gibt Ihnen eine einfach zu analysierende Antwort: Die API erledigt die Arbeit einer Layout-Rendering-Engine, so dass Sie nicht selbst eine erstellen müssen. Ihr Liegestuhl (oder Snowboard oder Garten oder...) wartet.
Ach ja: Für die UI API gelten die gleichen API-Obergrenzen wie für die Enterprise-API, Sie müssen sich also keine Gedanken darüber machen, neue Methoden zur Nachverfolgung von API-Obergrenzen lernen zu müssen.
- Effiziente Nutzlasten
- Sie benötigen viele Informationen, um Formulare zu erstellen, mit denen Benutzer mit Datensätzen arbeiten können. Welche Felder hat das Objekt? Sind es Pflichtfelder? Wo sollen sie im Layout positioniert werden? Was sind die Werte aller Felder? UI API-Nutzlasten aggregieren die Daten und Metadaten, so dass Sie nicht viele API-Anforderungen durchführen müssen.
- Formatierte und lokalisierte Anzeigewerte
- Da wir gerade von Feldwerten sprechen: Die UI API liefert Ihnen Werte, die in der vom Benutzer gewählten Sprache angezeigt werden können. Ob Datums- oder Währungswert, er wird ansprechend formatiert. Es spielt keine Rolle, welchen Datentyp das Feld hat – Ihr Code verwendet einfach die Eigenschaft displayValue.
- Feldebenensicherheit und Freigaberegeln
- Die UI API respektiert die entsprechenden Einstellungen. Hat ein Benutzer keinen Zugriff auf ein Feld, wird das Feld nicht in die Antwort aufgenommen. Basta. Genießen Sie Ihre freie Zeit.
- Geschäftslogik
- Alle Entwickler haben ähnliche Probleme. Um beispielsweise eine Benutzeroberfläche zu entwickeln, mit der Benutzer einen Datensatz duplizieren können, benötigen Sie andere Informationen als für die Entwicklung einer Benutzeroberfläche, mit der Benutzer einen Datensatz erstellen können. Ein Duplizierungsformular enthält Datenwerte aus dem duplizierten Datensatz, während die meisten Datenwerte in einem Erstellungsformular null sind ('Owner' und 'OwnerId' sind nicht-null). Die UI-API verfügt über Ressourcen, die die notwendigen Informationen für die Entwicklung von Benutzeroberflächen für diese Anwendungsfälle liefern. Dies sind dieselben Ressourcen, die wir für die Entwicklung von Lightning Experience und Salesforce für Android und iOS verwenden. Sie erhalten die gleichen Standardwerte wie in Salesforce – echt cool, oder?
- Layouttypen und Formfaktoren
- Soll Ihre Anwendung auf jedem Gerät, Tablet oder Desktop-PC funktionieren? Natürlich soll sie das. UI API-Antworten können vollständige und kompakte Layouttypen sowie kleine, mittlere und große Formfaktoren bereitstellen.
- Zugriffsmodi
- Beim Erstellen einer Anwendung, mit der Benutzer mit Salesforce-Datensätzen arbeiten können, müssen Sie verschiedene Benutzeroberflächen für die verschiedenen Arten von Arbeit erstellen. Wird der Benutzer einen Datensatz anzeigen, erstellen, duplizieren oder bearbeiten? Sie können eine Nutzlast für jeden dieser Zugriffsmodi anfordern. (Da beim Duplizieren der Bearbeitungsmodus verwendet wird, sind es eigentlich nur drei Zugriffsmodi: erstellen, bearbeiten und anzeigen.)
Wann sollte ich die User Interface API nicht verwenden?
Verwenden Sie die User Interface API nicht für die Systemintegration. Und auch nicht zum Erstellen einer automatisierten Integration zum Hochladen oder Extrahieren von Daten. Und auch nicht zum Hochladen oder Extrahieren von Daten als Massenvorgang. Verwenden Sie für diese Aufgaben die Enterprise-API oder die Bulk-API.
Verwenden Sie beim Erstellen von Lightning-Webkomponenten die UI API nicht direkt, sondern Lightning Data Service (LDS).
Der LDS setzt auf der User Interface API auf, bietet aber auch Caching für Antworten und Aktualisierungen für alle Datensätze, auf die sich Datenänderungen auswirken. Wenn Sie den LDS verwenden, müssen Sie sich nicht um REST-Aufrufe und das Caching von Ergebnissen kümmern, da der LDS dies für Sie übernimmt. Und wenn sich Daten ändern, aktualisiert der LDS alle relevanten Komponenten. Der LDS verhindert nicht nur inkonsistente Daten zwischen Komponenten, sondern ermöglicht es dem Benutzer auch, offline zu arbeiten, da die Daten synchronisiert werden, sobald er wieder online geht. Der LDS ist cool.
Und, schließlich und endlich, verwenden Sie die User Interface API nicht dazu, die gesamte Salesforce-UI neu zu erstellen. Warum sollten Sie das auch tun wollen?
Die Ressourcen der User Interface API
Die UI API-Ressourcen lassen sich in mehrere Kategorien unterteilen. Dieses Trailhead-Modul befasst sich eingehend mit den Ressourcen für Datensätze und Layouts, wir gehen jetzt aber am besten schnell einige der anderen Kategorien durch, damit Sie eine Vorstellung von den Möglichkeiten bekommen. Eine vollständige Liste der Ressourcen finden Sie im User Interface Developer Guide.
Datensätze und Layouts
Verwenden Sie diese Ressourcen, um Salesforce-Datensätze zu erstellen, zu lesen, zu aktualisieren und zu löschen.
Die wichtigste UI API-Ressource akzeptiert eine oder mehrere Datensatz-IDs und gibt Daten, Metadaten und Layoutinformationen zurück. Ja, ganz richtig: Ihre Anwendung setzt eine HTTP-Anforderung ab und ruft alles ab, was Sie für die Anzeige eines Datensatzes brauchen. In der nächsten Einheit befassen wir uns eingehender mit dieser Ressource.
/ui-api/record-ui/{recordIds}
/ui-api/layout/{objectApiName} /ui-api/object-info/{objectApiName} /ui-api/records/{recordId}
/ui-api/record-defaults/create/{objectApiName} /ui-api/record-defaults/clone/{recordId}
/ui-api/object-info/{objectApiName}/picklist-values/{recordTypeId}
Listenansichten
/ui-api/list-ui/${listViewId} /ui-api/list-ui/${objectApiName}/${listViewApiName}
/ui-api/list-info/${listViewId} /ui-api/list-info/${objectApiName}/${listViewApiName} /ui-api/list-records/${listViewId} /ui-api/list-records/${objectApiName}/${listViewApiName}
Aktionen
/ui-api/actions/global /ui-api/actions/record/${recordIds} /ui-api/actions/record/${recordId}/record-edit /ui-api/actions/record/${recordId}/related-list/${relatedListIds} // There are more actions resources! Check the User Interface API Developer Guide!
Derzeit können Sie die Aktionsendpunkte verwenden, um Listen von Aktionen abzurufen, können aber keine Aktionen ausführen. Der Abruf einer Aktionsliste ist praktisch, wenn Sie Schnellaktionen verwenden, Visualforce-Überschreibungen einsetzen oder CRUD auf der Grundlage sichtbarer Aktionen ermitteln möchten. Gibt es beispielsweise eine Aktion "Neu", kann der Benutzer einen Datensatz erstellen. Dasselbe gilt für "Bearbeiten" und "Löschen".
Favoriten
/ui-api/favorites /ui-api/favorites/${favoriteId} /ui-api/favorites/batch /ui-api/favorites/${favoriteId}/usage
Nachschlagevorgänge
Salesforce-Objekte enthalten oftmals Nachschlagefelder, die es Ihnen ermöglichen, zwei Datensätze in einer Beziehung zu verknüpfen. Ein Kontaktdatensatz z. B. enthält ein Nachschlagefeld mit dem Namen Account, das den Kontakt mit seinem Account verbindet. Auf Datensatzbearbeitungsseiten ermöglichen Ihnen Nachschlagefelder nach dem Datensatz zu suchen, den Sie mit dem Datensatz verknüpfen möchten, den Sie gerade bearbeiten.
/ui-api/lookups/{objectApiName}/{fieldApiName} /ui-api/lookups/{objectApiName}/{fieldApiName}/{targetApiName}