Erstellen einer Custom-API mit Lösungsdateien
Hinweis
Dies ist ein erweitertes Thema, das davon ausgeht, dass Sie diese Themen bereits gelesen und verstanden haben:
Während Sie Custom-APIs über einen Designer oder mit Code erstellen können, können Sie sie auch durch die Arbeit mit Dateien innerhalb einer Lösung definieren. Die Verwendung von Dateien in einer Lösung ist möglicherweise die bevorzugte Option für Lösungsherausgeber, die die empfohlenen Best Practices für Application Lifecycle Management (ALM) anwenden.
Eine Lösungsdatei ist eine komprimierte Datei (ZIP), die aus einer Microsoft Dataverse-Instanz exportiert wurde. Der Inhalt dieser Datei kann extrahiert und die Komponenten in ein Quell-Repository eingecheckt werden. Der Inhalt kann bearbeitet und anschließend erneut komprimiert werden. Die auf die Lösung vorgenommenen Änderungen sind Teil der Lösung und werden beim Importieren der Lösung erstellt.
Hinweis
Diese Prozesse werden normalerweise mit Tools und Prozessen automatisiert. Dies wird in diesem Thema jedoch nicht abgedeckt. Dieses Thema konzentriert sich auf das einfache Szenario des Erstellens einer Custom-API durch manuelle Manipulation der extrahierten Dateien in einer Lösung, um zu zeigen, wie die Daten in den Dateien zum Erstellen einer Custom-API verwendet werden können. Weitere Informationen: Steuerelemente mit Lösungsdateien
Schritt 1: Eine nicht verwaltete Lösung erstellen
Sie sollten nicht versuchen, eine Lösungsdatei manuell zu erstellen. Verwenden Sie die Tools in Power Apps, um eine Lösungsdatei zu generieren. Führen Sie die Schritte in den folgenden Artikeln aus, um eine Lösung zu erstellen und zu exportieren. Die Lösung muss keine Lösungskomponenten enthalten.
-
In diesem Beispiel wird die Lösung einfach wie folgt definiert:
-
Stellen Sie in diesem Beispiel sicher, dass Sie eine nicht verwaltete Lösung exportieren. Verwaltete Lösung ist die Standardeinstellung.
Sie finden die exportierte Datei in Ihrem Downloadordner. In diesem Fall hängt der Name vom Namen und der Version der Lösung ab: CustomAPIExample_1_0_0_2.zip
.
Schritt 2: Inhalt der Lösung extrahieren und Version aktualisieren
Die Lösung ist eine komprimierte Datei (ZIP).
Klicken Sie mit der rechten Maustaste auf die Datei, und wählen Sie Alle extrahieren... aus dem Kontextmenü aus.
Sie sollten nur die folgenden drei Dateien im Ordner sehen:
[Content_Types].xml
customizations.xml
solution.xml
Öffnen Sie die Datei „solution.xml“, und suchen Sie das Element
Version
.<ImportExportXml version="9.1.0.23474" SolutionPackageVersion="9.1" languagecode="1033" generatedBy="CrmLive" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SolutionManifest> <UniqueName>CustomAPIExample</UniqueName> <LocalizedNames> <LocalizedName description="Custom API Example" languagecode="1033" /> </LocalizedNames> <Descriptions /> <Version>1.0.0.1</Version>
Aktualisieren Sie den Wert um 1. In diesem Beispiel lautet er
<Version>1.0.0.2</Version>
.Speichern Sie die Datei.
Schritt 3: Fügen Sie die Definition der Custom-API hinzu
Alle Custom-APIs in einer Lösung befinden sich in einem Ordner namens customapis. Innerhalb dieses Ordners befindet sich jede Custom-API in einem Ordner, der nach der Eigenschaft UniqueName
der Custom-API benannt ist.
Innerhalb des Ordners befinden sich die Daten, die die Custom-API darstellen, in einer XML-Datei mit dem Namen customapi.xml
.
Erstellen Sie in dem Ordner mit den extrahierten Dateien einen neuen Ordner mit dem Namen
customapis
.Erstellen Sie im Ordner customapis einen Ordner mit der
UniqueName
der Custom-API, die Sie erstellen möchten. In diesem Beispiel verwenden wirsample_CustomAPIExample
.In dem Ordner sample_CustomAPIExample, den Sie erstellt haben, erstellen Sie eine Datei namens
customapi.xml
.Bearbeiten Sie die Datei
customapi.xml
, um die Eigenschaften der benutzerdefinierten API festzulegen, die Sie erstellen möchten. In diesem Beispiel verwenden wir die folgende XML-Datei:<customapi uniquename="sample_CustomAPIExample"> <allowedcustomprocessingsteptype>0</allowedcustomprocessingsteptype> <bindingtype>0</bindingtype> <boundentitylogicalname /> <description default="A simple example of a custom API"> <label description="A simple example of a custom API" languagecode="1033" /> </description> <displayname default="Custom API Example"> <label description="Custom API Example" languagecode="1033" /> </displayname> <iscustomizable>0</iscustomizable> <executeprivilegename /> <isfunction>0</isfunction> <isprivate>0</isprivate> <name>sample_CustomAPIExample</name> <plugintypeid /> </customapi>
Siehe die Informationen in Benutzerdefinierte API-Tabellenspalten, um die Werte der Elemente festzulegen.
Eine Beziehung zu einem Plug-In-Typ festlegen (optional)
Wenn Sie bereits einen Plug-in Typ haben, den Sie mit dieser Custom-API verknüpfen möchten, können Sie einen Verweis darauf in diese Definition aufnehmen, indem Sie das folgende Element innerhalb des Elements <customapi>
hinzufügen:
<plugintypeid>
<plugintypeexportkey>{Add the GUID value of the plug-in type export key}</plugintypeexportkey>
</plugintypeid>
ODER
<plugintypeid>
<plugintypeid>{Add the GUID value of the plug-in type id}</plugintypeid>
</plugintypeid>
Hinweis
Beide Werte funktionieren, wir empfehlen jedoch die Verwendung von plugintypeexportkey
.
Sie können die PluginTypeExportKey- und PluginTypeId-Werte mithilfe einer Web-API-Abfrage wie dieser abrufen, bei der Sie den Namen des Plug-In-Typs kennen:
GET [Organization Uri]/api/data/v9.2/plugintypes?$select=name,plugintypeid,plugintypeexportkey&$filter=contains(name,'MyPlugin.TypeName')
Schritt 4: Hinzufügen beliebiger angepasster API-Anfrageparameter
Alle Definitionen von Anfrageparametern für die Custom-API sind in einem Ordner namens customapirequestparameters
enthalten. Innerhalb dieses Ordners befindet sich jeder Custom-API-Anfrageparameter in einem Ordner, der nach der Eigenschaft UniqueName
des Custom-API-Anfrageparameters benannt ist.
- Wenn Ihre Custom-API über Abfrageparameter verfügt, erstellen Sie in dem Ordner für die Custom-API, den Sie im vorherigen Schritt erstellt haben, einen Ordner mit dem Namen
customapirequestparameters
. - Erstellen Sie für jeden Custom-API-Anfrageparameter einen neuen Ordner mit der Eigenschaft
UniqueName
des Custom-API-Anfrageparameters. In diesem Beispiel verwenden wirStringParameter
. - Fügen Sie innerhalb des Ordners eine XML-Datei mit dem Namen
customapirequestparameter.xml
hinzu. - Bearbeiten Sie die Datei customapirequestparameter.xml, um die Eigenschaften der Custom-API, die Sie erstellen möchten, festzulegen. In diesem Beispiel verwenden wir Folgendes:
<customapirequestparameter uniquename="StringParameter">
<description default="The StringParameter request parameter for custom API Example">
<label description="The StringParameter request parameter for custom API Example" languagecode="1033" />
</description>
<displayname default="Custom API Example String Parameter">
<label description="Custom API Example String Parameter" languagecode="1033" />
</displayname>
<iscustomizable>0</iscustomizable>
<isoptional>0</isoptional>
<logicalentityname />
<name>sample_CustomAPIExample.StringParameter</name>
<type>10</type>
</customapirequestparameter>
Siehe die Informationen in CustomAPIRequestParameter Tabellenspalten, um die Werte der Elemente festzulegen.
Schritt 5: Hinzufügen beliebiger angepasster API Response Properties
Alle Definitionen von Antworteigenschaften für die Custom-API sind in einem Ordner mit dem Namen customapiresponseproperties
enthalten. Innerhalb dieses Ordners befindet sich jede Custom-API-Antworteigenschaft in einem Ordner, der nach der Eigenschaft UniqueName
der Custom-API-Antworteigenschaft benannt ist.
- Wenn Ihre Custom-API über Antwort-Eigenschaften verfügt, erstellen Sie in dem Ordner für die Custom-API, den Sie in Schritt 3: Hinzufügen der Definition der Custom-API erstellt haben, einen Ordner mit dem Namen
customapiresponseproperties
. - Erstellen Sie für jede Custom-API-Antwort-Eigenschaft einen neuen Ordner unter Verwendung der Eigenschaft
UniqueName
der Custom-API-Antwort-Eigenschaft. In diesem Beispiel verwenden wirStringProperty
. - Fügen Sie innerhalb des Ordners eine XML-Datei mit dem Namen
customapiresponseproperty.xml
hinzu. - Bearbeiten Sie die Datei customapiresponseproperty.xml, um die Eigenschaften der Custom-API festzulegen, die Sie erstellen möchten. In diesem Beispiel verwenden wir Folgendes:
<customapiresponseproperty uniquename="StringProperty">
<description default="The StringProperty response property for custom API Example">
<label description="The StringProperty response property for custom API Example" languagecode="1033" />
</description>
<displayname default="Custom API Example String Property">
<label description="Custom API Example String Property" languagecode="1033" />
</displayname>
<iscustomizable>0</iscustomizable>
<logicalentityname />
<name>sample_CustomAPIExample.StringProperty</name>
<type>10</type>
</customapiresponseproperty>
Siehe die Informationen in CustomAPIResponseProperty Table Columns, um die Werte der Elemente festzulegen.
Hinweis
Obwohl das Schema für Anforderungsparameter und Antworteigenschaften sehr ähnlich ist, beachten Sie, dass isoptional
für eine Antworteigenschaft nicht gültig ist und einen Fehler verursacht, wenn Sie versuchen, die Lösung zu importieren.
Schritt 6: Dateien komprimieren, um eine neue Lösungsdatei zu erstellen
Kehren Sie zu dem Ordner zurück, in den Sie die ursprüngliche Lösungsdatei im Zuge von Schritt 2: Inhalt der Lösung extrahieren und Version aktualisieren extrahiert haben.
Wählen Sie alle extrahierten Dateien und den Ordner customapis, den Sie erstellt haben, aus.
Klicken Sie mit der rechten Maustaste auf die ausgewählten Dateien, und wählen Sie Senden an > Komprimierter (gezippter Ordner) aus.
Sie können die resultierende Datei beliebig umbenennen. Benennen Sie sie in diesem Beispiel so um, dass sie mit der ursprünglich exportierten Lösungsdatei übereinstimmt:
CustomAPIExample_1_0_0_2.zip
.
Schritt 7: Importieren Sie die Lösung mit der Definition Ihrer Custom-API
Kehren Sie zu Power Apps zurück, und wählen Sie Lösungen aus.
Wählen Sie Importieren aus, und folgen Sie den Anweisungen, um die Lösungsdatei auszuwählen, die Sie im vorherigen Schritt erstellt haben.
Hinweis
Wenn Sie eine Warnung wie Diese Version des Lösungspakets ist bereits installiert sehen, darf das
Version
-Element der Datei „solution.xml“ nicht wie in Schritt 2: Inhalt der Lösung extrahieren und Version aktualisieren beschrieben aktualisiert sein.Es sollte eine Warnung wie Dieses Lösungspaket enthält ein Update für eine bereits installierte Lösung angezeigt werden. Wählen Sie zum Fortfahren Importieren.
Warten Sie einige Minuten, bis der Lösungsimport abgeschlossen ist.
Hinweis
Möglicherweise wird ein Fehler angezeigt, wenn gleichzeitig eine andere Lösung installiert wird. Weitere Informationen: Das Installieren oder Entfernen der Lösung ist fehlgeschlagen, da gleichzeitig eine andere Lösung installiert oder entfernt wurde.
Schritt 8: Überprüfen Sie, ob die Custom-API zu Ihrer Lösung hinzugefügt wurde
Öffnen Sie die von Ihnen erstellte Lösung und überprüfen Sie, ob die Custom-API und die zugehörigen Anfrageparameter und Antworteigenschaften enthalten sind.
Zu diesem Zeitpunkt können Sie Ihre API anhand der in Testen Sie Ihre Custom-API beschriebenen Schritte testen.
Aktualisieren einer Custom-API in einer Lösung
Nachdem Sie eine Lösung ausgeliefert haben, die eine Custom-API enthält, möchten Sie vielleicht einige Änderungen an der Custom-API in Ihrer nicht verwalteten Lösung vornehmen. Sie können neue Parameter oder Antworteigenschaften hinzufügen und Änderungen an den Spalten vornehmen, die eine Aktualisierung unterstützen, z. B. displayname
und description
.
Wichtig
Sie können keine Änderung an einer Custom-API in einer Lösung vornehmen, die eine der Eigenschaften verändert, die nach dem Speichern nicht mehr geändert werden können. Wenn Sie eine neuere Version einer Lösung installieren, die eine Definition einer Custom-API enthält, wird versucht, die Custom-API, die Custom-API-Anfrageparameter und die Custom-API-Antworteigenschaften zu aktualisieren. Eine Lösungsaktualisierung ist dasselbe wie der Versuch, die Custom-API mit einer beliebigen anderen Methode zu aktualisieren.
Im Folgenden finden Sie Eigenschaften in den Lösungsdateien, die nicht mehr geändert werden können, nachdem eine Custom-API erstellt wurde:
- Benutzerdefinierte API-Eigenschaften
allowedcustomprocessingsteptype
bindingtype
boundentitylogicalname
isfunction
uniquename
workflowsdkstepenabled
- Benutzerdefinierte API RequestParameter-Eigenschaften
isoptional
logicalentityname
type
uniquename
- Benutzerdefinierte API-Antworteigenschaften:
logicalentityname
type
uniquename
Weitere Informationen: CustomAPI-Tabellen
Lokalisierte Beschriftungen in der Lösung bereitstellen
Alternativ zu dem unter Lokalisierte Label-Werte beschriebenen Prozess können Sie, wenn Sie die Lösungsdateien für Custom-API-Entitäten bearbeiten, die Übersetzungen direkt in diesen Dateien bereitstellen. Wenn Sie zum Beispiel japanischsprachige Labels für Ihre Custom-API bereitstellen möchten, können Sie diese für die Eigenschaften description
und displayname
bereitstellen, wie unten gezeigt:
<customapi uniquename="sample_CustomAPIExample">
<allowedcustomprocessingsteptype>0</allowedcustomprocessingsteptype>
<bindingtype>0</bindingtype>
<description default="A simple example of a custom API">
<label description="A simple example of a custom API" languagecode="1033" />
<label description="カスタムAPIの簡単な例" languagecode="1041" />
</description>
<displayname default="Custom API Example">
<label description="Custom API Example" languagecode="1033" />
<label description="カスタムAPIの例" languagecode="1041" />
</displayname>
<iscustomizable>0</iscustomizable>
<isfunction>0</isfunction>
<name>sample_CustomAPIExample</name>
</customapi>
Siehe auch
Custom-APIs erstellen und verwenden
CustomAPI-Tabellen
Erstellen Sie eine Custom-API mit dem Tool zur Plugin-Registrierung
Erstellen Sie eine Custom-API in Power Apps
Erstellen Sie eine Custom-API mit Code
Eigene Nachrichten erstellen
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).