Einführung

Um benutzerdefinierte APIs in PowerApps verwenden zu können, müssen Sie eine Swagger-Definition bereitstellen, ein sprachunabhängiges maschinenlesbares Dokument, welches die API-Vorgänge und -Parameter beschreibt. Zusätzlich zur sofortigen Swagger-Spezifikation sind beim Erstellen einer benutzerdefinierten API für PowerApps einige Erweiterungen verfügbar.

x-ms-summary

Definiert den Anzeigenamen für Entitäten, die das summary-Feld in der Swagger-Definition nicht definiert haben.

x-ms-visibility

Definiert, ob die Entität im Microsoft Flow-Designer angezeigt wird. Die folgenden Werte sind verfügbar:

  • „keiner“ (Standard)
  • „fortgeschritten“
  • „intern“: Microsoft Flow-Designer zeigt diese Vorgänge nicht

Wenn ein Vorgang als „wichtig“ gekennzeichnet ist, muss der Client für Microsoft Flow diese Vorgänge markieren.

x-ms-trigger

Definiert, ob dieser Vorgang als Trigger in einem Flow verwendet werden kann. Die Optionen beinhalten:

  • keine (Standard): Der Vorgang kann nicht als Trigger verwendet werden.
  • einzeln: Dieser Vorgang kann auch als Trigger verwendet werden.
  • im Batchmodus: Dieser Vorgang kann als Trigger verwendet werden. Darüber hinaus antwortet dieser Vorgang mit einem JSON-Array von Objekten und der Flow löst für jedes Element im Array einen Trigger aus.

x-ms-dynamic-values

Dies ist ein Hinweis für den Microsoft Flow-Designer, dass die API eine Liste der dynamisch zulässigen Werte für diesen Parameter enthält. Der Microsoft Flow-Designer kann einen Vorgang aufrufen, wie durch den Wert dieses Felds definiert, und die möglichen Werte aus dem Ergebnis extrahieren. Der Microsoft Flow-Designer kann diese Werte anschließend als Optionen für den Endbenutzer anzeigen.

Der Wert ist ein Objekt, das die folgenden Eigenschaften enthält:

  • operationId: Eine Zeichenfolge, die mit operationId für den Vorgang übereinstimmt, der aufgerufen wird
  • parameters: Ein Objekt, dessen Eigenschaften die für den Vorgang erforderlichen Parameter definieren
  • value-collection: Eine Pfadzeichenfolge, die ein Array von Objekten in der Antwortnutzlast ergibt
  • value-path: Eine Pfadzeichenfolge im Objekt in „value-collection“, die auf den Wert für den Parameter verweist.
  • value-title: Eine Pfadzeichenfolge im Objekt in „value-collection“, die auf eine Beschreibung für den Wert verweist.

Beispiel:

"/api/tables/{table}/items": {
  "post": {
    "operationId": "TableData_CreateItem",
    "summary": "Create an object in {Salesforce}",
    "parameters": [
      {
        "name": "table",
        "x-ms-summary": "Object Type",
        "x-ms-dynamic-values": {
          "operationId": "TableMetadata_ListTables",      // operation that needs to be invoked
          "parameters": { },                              // parameters for the above operation, if any
          "value-collection": "values",                   // field that contains the collection
          "value-path": "Name",                           // field that contains the value
          "value-title": "DisplayName"                    // field that contains a display name for the value
      }
      // ...
    ]
    // ...
  }
  // ...
}

In diesem Beispiel definiert der Swagger den Vorgang TableData_CreateItem, der ein neues Objekt in Salesforce erstellt.

Salesforce verfügt über zahlreiche integrierte Objekte. x-ms-dynamic-values wird hier verwendet, damit der Designer die Liste der integrierten Salesforce-Objekte finden kann. Er erhält die Liste durch Aufrufen von TableMetadata_ListTables.

x-ms-dynamic-schema

Dies ist ein Hinweis für den Flow-Designer, dass das Schema für diese Parameter (oder die Antwort) dynamisch ist. Er kann einen Vorgang aufrufen, wie durch den Wert dieses Felds definiert, und das Schema dynamisch ermitteln. Er kann anschließend eine geeignete Benutzeroberfläche darstellen, um Eingaben vom Benutzer zu verwenden oder verfügbare Felder anzuzeigen.

Beispiel:

{
  "name": "item",
  "in": "body",
  "required": true,
  "x-ms-dynamic-schema": {
    "operationId": "Metadata_GetTableSchema",
    "parameters": {
      "tablename": "{table}"              // the value that the user has selected from the above parameter
    },
    "value-path": "Schema"                // the field that contains the JSON schema
  }
},

Dies ist in Szenarios nützlich, in denen die Eingaben für einen Vorgang dynamisch sind. Beispielsweise unterscheidet sich bei SQL das Schema für jede Tabelle. Wenn ein Benutzer eine bestimmte Tabelle auswählt, muss der Flow-Designer die Struktur der Tabelle verstehen, sodass die Spaltennamen angezeigt werden können. In diesem Kontext, wenn die Swagger-Definition über x-ms-dynamic-schema verfügt, ruft sie den entsprechenden Vorgang zum Abrufen des Schemas auf.

Nächste Schritte

Eine benutzerdefinierte API registrieren

Use an ASP.NET Web API (Eine API des ASP.NET-Web-App verwenden)

Register an Azure Resource Manager API (Registrieren einer Azure Resource Manager-API)