Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Möglichkeit, benutzerdefinierte Connectors für Microsoft Copilot Studio, Azure Logic Apps, Microsoft Power Automate oder Microsoft Power Apps zu erstellen, ist die Bereitstellung einer OpenAPI-Definitionsdatei. Diese Datei ist ein sprachunabhängiges, maschinenlesbares Dokument, das die Vorgänge und Parameter Ihrer API beschreibt. Zusammen mit der sofort einsatzbereiten Funktionalität von OpenAPI können Sie die folgenden OpenAPI-Erweiterungen auch beim Erstellen von benutzerdefinierten Connectors für Logic Apps und Power Automate einschließen:
summaryx-ms-summarydescriptionx-ms-visibilityx-ms-api-annotationx-ms-operation-contextx-ms-capabilitiesx-ms-triggerx-ms-trigger-hintx-ms-notification-contentx-ms-notification-urlx-ms-url-encodingx-ms-dynamic-values and x-ms-dynamic-listx-ms-dynamic-schema and x-ms-dynamic-properties
Diese Erweiterungen werden in den folgenden Abschnitten beschrieben.
summary
Gibt den Titel für die Aktion (den Vorgang) an.
Gilt für: Vorgänge
Empfohlen: Verwenden Sie Großbuchstaben am Satzanfang für summary.
Beispiel: „Wenn dem Kalender ein Ereignis hinzugefügt wird“ oder „E-Mail senden“
"actions" {
"Send_an_email": {
/// Other action properties here...
"summary": "Send an email",
/// Other action properties here...
}
},
x-ms-summary
Gibt den Titel für eine Entität an.
Gilt für: Parameter, Antwortschema
Empfohlen: Verwenden Sie einen Großbuchstaben am Anfang für x-ms-summary.
Beispiel: „Kalender-ID“, „Betreff“, „Ereignisbeschreibung“
"actions" {
"Send_an_email": {
/// Other action properties here...
"parameters": [{
/// Other parameters here...
"x-ms-summary": "Subject",
/// Other parameters here...
}]
}
},
Beschreibung
Gibt eine ausführliche Erläuterung der Funktionalität eines Vorgangs oder das Format und die Funktion einer Entität an.
Gilt für: Vorgänge Parameter, Antwortschema
Empfohlen: Verwenden Sie einen Großbuchstaben am Anfang des Satzes für description.
Beispiel: „Dieser Vorgang wird ausgelöst, wenn dem Kalender ein neues Ereignis hinzugefügt wird“, „Geben Sie den Betreff der Mail an“
"actions" {
"Send_an_email": {
"description": "Specify the subject of the mail",
/// Other action properties here...
}
},
x-ms-visibility
Gibt die Sichtbarkeit einer Entität für den Benutzer an.
Mögliche Werte: important, advanced und internal
Gilt für: Vorgänge, Parameter, Schemas
-
important-Vorgänge und -Parameter werden dem Benutzer immer zuerst angezeigt. -
advanced-Vorgänge und -Parameter werden in einem zusätzlichen Menü ausgeblendet. -
internal-Vorgänge und -Parameter werden vor dem Benutzer verborgen.
Anmerkung
Für Parameter, die internal und required sind, müssen Sie Standardwerte angeben.
Beispiel: Die Menüs Weitere anzeigen und Erweiterte Optionen anzeigen verbergen advanced-Vorgänge und -Parameter.
"actions" {
"Send_an_email": {
/// Other action properties here...
"parameters": [{
"name": "Subject",
"type": "string",
"description": "Specify the subject of the mail",
"x-ms-summary": "Subject",
"x-ms-visibility": "important",
/// Other parameter properties here...
}]
/// Other action properties here...
}
},
x-ms-api-annotation
Wird für die Versions- und Lebenszyklusverwaltung eines Vorgangs verwendet.
Gilt für: Vorgänge
-
family: Eine Zeichenfolge, die den Ordner der Vorgangsfamilie angibt. -
revision: Ein Integer-Wert, der die Revisionsnummer angibt. -
replacement: Ein Objekt, das die Informationen und Vorgänge der Ersatz-API enthält.
"x-ms-api-annotation": {
"family": "ListFolder",
"revision": 1,
"replacement": {
"api": "SftpWithSsh",
"operationId": "ListFolder"
}
}
x-ms-operation-context
Dient zum Simulieren einer Triggerauslösung, um das Testen eines triggerabhängigen Flows zu ermöglichen.
Gilt für: Vorgänge
"x-ms-operation-context": {
"simulate": {
"operationId": "GetItems_V2",
"parameters": {
"$top": 1
}
}
x-ms-capabilities
Bei Verwendung auf der Connector-Ebene handelt es sich hierbei um eine Übersicht über die Funktionen des Connectors (einschließlich spezifischer Vorgänge).
Gilt für: Connectors
"x-ms-capabilities": {
"testConnection": {
"operationId": "GetCurrentUser"
},
}
Bei Verwendung auf der Vorgangsebene wird mit dieser Option ermittelt, ob der Vorgang segmentiertes Hochladen und/oder eine statische Blockgröße unterstützt und vom Benutzer angegeben werden kann.
Gilt für: Vorgänge
-
chunkTransfer: Ein boolescher Wert, der angibt, ob die segmentierte Übertragung unterstützt wird.
"x-ms-capabilities": {
"chunkTransfer": true
}
x-ms-trigger
Gibt an, ob es sich beim aktuellen Vorgang um einen Trigger handelt, der ein einzelnes Ereignis erzeugt. Wenn dieses Feld nicht vorhanden ist, handelt es sich um einen Vorgang vom Typ action.
Gilt für: Vorgänge
-
single: Objektantwort -
batch: Arrayantwort
"x-ms-trigger": "batch"
x-ms-trigger-hint
Eine Beschreibung, die angibt, wie ein Ereignis für einen Triggervorgang ausgelöst wird.
Gilt für: Vorgänge
"x-ms-trigger-hint": "To see it work, add a task in Outlook."
x-ms-notification-content
Enthält eine Schemadefinition einer Webhookbenachrichtigungsanforderung. Hierbei handelt es sich um das Schema für eine Webhooknutzlast, die von externen Diensten an die Benachrichtigungs-URL gesendet wird.
Gilt für: Ressourcen
"x-ms-notification-content": {
"schema": {
"$ref": "#/definitions/WebhookPayload"
}
},
x-ms-notification-url
Gibt über einen booleschen Wert an, ob in diesem Parameter/Feld eine Webhookbenachrichtigungs-URL für einen Webhookregistrierungsvorgang platziert werden soll.
Gilt für: Parameter/Eingabefelder
"x-ms-notification-url": true
x-ms-url-encoding
Gibt an, ob für den aktuellen Pfadparameter eine doppelte URL-Codierung (double) oder eine einfache URL-Codierung (single) verwendet werden soll. Wenn dieses Feld nicht vorhanden ist, wird die einfache Codierung (single) verwendet.
Gilt für: Pfadparameter
"x-ms-url-encoding": "double"
Dynamische Werte verwenden
Dynamische Werte sind eine Liste von Optionen für den Benutzer zur Auswahl von Eingabeparametern für eine Operation.
Gilt für: Parameter
Wie man dynamische Werte verwendet
Anmerkung
Eine Pfadzeichenfolge ist ein JSON-Zeiger, der keinen führenden Schrägstrich enthält. Dies ist also ein JSON-Pointer: /property/childProperty, und dies ist eine Pfadangabe: property/childProperty.
Es gibt zwei Möglichkeiten, um dynamische Werte zu definieren:
x-ms-dynamic-valuesverwendenName Erforderlich Beschreibung operationId Ja Die Operation, die die Werte zurückgibt. parameters Ja Ein Objekt, das die Eingabeparameter bereitstellt, die zum Aufrufen einer Operation mit dynamischen Werten erforderlich sind. value-collection Nein Eine Pfadzeichenfolge, die zu einem Array von Objekten in der Antwortnutzlast ausgewertet wird. Wenn die Wertauflistung nicht angegeben ist, wird die Antwort als Array ausgewertet. value-title Nein Eine Pfadzeichenfolge im Objekt innerhalb der Wertauflistung, die sich auf die Beschreibung des Wertes bezieht. value-path Nein Eine Pfadzeichenfolge im Objekt innerhalb der Wertauflistung, die sich auf den Parameterwert bezieht. "x-ms-dynamic-values": { "operationId": "PopulateDropdown", "value-path": "name", "value-title": "properties/displayName", "value-collection": "value", "parameters": { "staticParameter": "<value>", "dynamicParameter": { "parameter": "<name of the parameter to be referenced>" } } }Anmerkung
Es ist möglich, mehrdeutige Parameterreferenzen zu haben, wenn dynamische Werte verwendet werden. In der folgenden Definition eines Vorgangs beziehen sich die dynamischen Werte beispielsweise auf das Feld id, was aus der Definition mehrdeutig ist, da nicht klar ist, ob es sich auf den Parameter id oder die Eigenschaft requestBody/id bezieht.
{ "summary": "Tests dynamic values with ambiguous references", "description": "Tests dynamic values with ambiguous references.", "operationId": "TestDynamicValuesWithAmbiguousReferences", "parameters": [{ "name": "id", "in": "path", "description": "The request id.", "required": true }, { "name": "requestBody", "in": "body", "description": "query text.", "required": true, "schema": { "description": "Input body to execute the request", "type": "object", "properties": { "id": { "description": "The request Id", "type": "string" }, "model": { "description": "The model", "type": "string", "x-ms-dynamic-values": { "operationId": "GetSupportedModels", "value-path": "name", "value-title": "properties/displayName", "value-collection": "value", "parameters": { "requestId": { "parameter": "id" } } } } } } }], "responses": { "200": { "description": "OK", "schema": { "type": "object" } }, "default": { "description": "Operation Failed." } } }x-ms-dynamic-listEs gibt keine Möglichkeit, Parameter eindeutig zu referenzieren. Diese Funktion kann in Zukunft bereitgestellt werden. Wenn Ihr Vorgang neue Updates nutzen soll, fügen Sie die neue Erweiterung
x-ms-dynamic-listzusammen mitx-ms-dynamic-valueshinzu. Wenn Ihre dynamische Erweiterung auf Eigenschaften in Parametern verweist, müssen Sie außerdem die neue Erweiterungx-ms-dynamic-listzusammen mitx-ms-dynamic-valueshinzufügen. Die Parameterreferenzen, die auf Eigenschaften verweisen, müssen als Pfadzeichenfolgen ausgedrückt werden.parameters: Bei dieser Eigenschaft handelt es sich um ein Objekt, bei dem jede Eingabeeigenschaft des aufgerufenen dynamischen Vorgangs entweder mit einem statischen Wertfeld oder einem dynamischen Verweis auf die Eigenschaft des Quellvorgangs definiert ist. Diese beiden Optionen werden im Folgenden definiert.value: Dies ist der Literalwert, der für den Eingabeparameter zu verwenden ist. Im folgenden Beispiel ist der Eingabeparameter des Vorgangs GetDynamicList namens Version mithilfe eines statischen Werts von 2.0 definiert.{ "operationId": "GetDynamicList", "parameters": { "version": { "value": "2.0" } } }parameterReference: Dies ist der vollständige Parameter-Referenzpfad, beginnend mit dem Parameternamen, gefolgt von der Pfadzeichenfolge der zu referenzierenden Eigenschaft. Zum Beispiel wird die Eingabeeigenschaft des Vorgangs GetDynamicList namens property1, die sich unter dem Parameter destinationInputParam1 befindet, als dynamischer Verweis auf eine Eigenschaft namens property1 unter dem Parameter sourceInputParam1 des Quellvorgangs definiert.{ "operationId": "GetDynamicList", "parameters": { "destinationInputParam1/property1": { "parameterReference": "sourceInputParam1/property1" } } }Anmerkung
Wenn Sie auf eine Eigenschaft verweisen möchten, die als intern markiert ist und einen Standardwert hat, müssen Sie in diesem Fall anstelle von
parameterReferenceden Standardwert als statischen Wert in der Definition verwenden. Der Standardwert aus der Liste wird nicht verwendet, wenn er mitparameterReferencedefiniert ist.Name Erforderlich Beschreibung operationId Ja Der Vorgang, der die Liste zurückgibt. parameters Ja Ein Objekt, das die zum Aufrufen eines dynamischen Listenvorgangs erforderlichen Eingabeparameter bereitstellt. itemsPath Nein Eine Pfadzeichenfolge, die zu einem Array von Objekten in der Antwortnutzlast ausgewertet wird. Wenn itemsPathnicht angegeben ist, wird die Antwort als Array ausgewertet.itemTitlePath Nein Eine Pfadzeichenfolge im Objekt in itemsPath, die auf die Beschreibung des Werts verweist.itemValuePath Nein Eine Pfadzeichenfolge im Objekt in itemsPath, die auf den Wert des Elements verweist.Verwenden Sie mit
x-ms-dynamic-listParameterverweise mit der Pfadzeichenfolge der Eigenschaft, auf die Sie verweisen. Verwenden Sie diese Parameterreferenzen sowohl für den Schlüssel als auch für den Wert der dynamischen Betriebsparameterreferenz.{ "summary": "Tests dynamic values with ambiguous references", "description": "Tests dynamic values with ambiguous references.", "operationId": "TestDynamicListWithAmbiguousReferences", "parameters": [ { "name": "id", "in": "path", "description": "The request id.", "required": true }, { "name": "requestBody", "in": "body", "description": "query text.", "required": true, "schema": { "description": "Input body to execute the request", "type": "object", "properties": { "id": { "description": "The request id", "type": "string" }, "model": { "description": "The model", "type": "string", "x-ms-dynamic-values": { "operationId": "GetSupportedModels", "value-path": "name", "value-title": "properties/displayName", "value-collection": "cardTypes", "parameters": { "requestId": { "parameter": "id" } } }, "x-ms-dynamic-list": { "operationId": "GetSupportedModels", "itemsPath": "cardTypes", "itemValuePath": "name", "itemTitlePath": "properties/displayName", "parameters": { "requestId": { "parameterReference": "requestBody/id" } } } } } } } ], "responses": { "200": { "description": "OK", "schema": { "type": "object" } }, "default": { "description": "Operation Failed." } } }
Dynamisches Schema verwenden
Das dynamische Schema zeigt an, dass das Schema für den aktuellen Parameter oder die aktuelle Antwort dynamisch ist. Dieses Objekt ruft eine Operation auf, die durch den Wert in diesem Feld definiert ist, entdeckt dynamisch das Schema und zeigt die entsprechende Benutzeroberfläche zum Sammeln von Benutzereingaben oder die verfügbaren Felder an.
Gilt für: Parameter, Antworten
Dieses Bild zeigt, wie sich das Eingabeformular auf der Grundlage des vom Benutzer aus der Liste ausgewählten Elements ändert:
Dieses Bild zeigt, wie sich die Ausgaben je nach dem Element ändern, das der Benutzer aus der Dropdownliste auswählt. In dieser Version wählt der Benutzer Autos aus:
In dieser Version wählt der Benutzer Lebensmittel:
Wie wird ein dynamisches Schema verwendet?
Anmerkung
Eine Pfadzeichenfolge ist ein JSON-Zeiger, der keinen führenden Schrägstrich enthält. Dies ist also ein JSON-Pointer: /property/childProperty, und dies ist eine Pfadangabe: property/childProperty.
Es gibt zwei Möglichkeiten, ein dynamisches Schema zu definieren:
x-ms-dynamic-schema:Name Erforderlich Beschreibung operationId Ja Die Operation, die das Schema zurückgibt. parameters Ja Ein Objekt, das die Eingabeparameter bereitstellt, die erforderlich sind, um eine dynamische Schemaoperation aufzurufen. value-path Nein Eine Pfadzeichenfolge, die auf die Eigenschaft verweist, die das Schema aufweist. Wenn nichts angegeben wird, wird davon ausgegangen, dass die Antwort das Schema in den Eigenschaften des Stammobjekts enthalten ist. Wenn angegeben, muss die erfolgreiche Antwort die Eigenschaft enthalten. Für ein leeres oder undefiniertes Schema sollte dieser Wert null sein. { "name": "dynamicListSchema", "in": "body", "description": "Dynamic schema for items in the selected list", "schema": { "type": "object", "x-ms-dynamic-schema": { "operationId": "GetListSchema", "parameters": { "listID": { "parameter": "listID-dynamic" } }, "value-path": "items" } } }Anmerkung
Es kann unter Umständen mehrdeutige Referenzen in den Parametern geben. In der folgenden Definition eines Vorgangs referenziert zum Beispiel das dynamische Schema ein Feld mit dem Namen Abfrage, das nicht deterministisch aus der Definition abgeleitet werden kann, unabhängig davon, ob es das Parameterobjekt Abfrage oder die Zeichenfolgeneigenschaft Abfrage/Abfrage referenziert.
{ "summary": "Tests dynamic schema with ambiguous references", "description": "Tests dynamic schema with ambiguous references.", "operationId": "TestDynamicSchemaWithAmbiguousReferences", "parameters": [{ "name": "query", "in": "body", "description": "query text.", "required": true, "schema": { "description": "Input body to execute the request", "type": "object", "properties": { "query": { "description": "Query Text", "type": "string" } } }, "x-ms-summary": "query text" }], "responses": { "200": { "description": "OK", "schema": { "x-ms-dynamic-schema": { "operationId": "GetDynamicSchema", "parameters": { "query": { "parameter": "query" } }, "value-path": "schema/valuePath" } } }, "default": { "description": "Operation Failed." } } }Beispiele von Open-Source-Connectors
Connector Szenario Verknüpfung Ticketausstellung Schema für Details eines ausgewählten Ereignisses abrufen Ticketausstellung x-ms-dynamic-properties:Es gibt keine Möglichkeit, Parameter eindeutig zu referenzieren. Diese Funktion kann in Zukunft bereitgestellt werden. Wenn Ihr Vorgang neue Updates nutzen soll, fügen Sie die neue Erweiterung
x-ms-dynamic-propertieszusammen mitx-ms-dynamic-schemahinzu. Wenn Ihre dynamische Erweiterung auf Eigenschaften in Parametern verweist, müssen Sie außerdem die neue Erweiterungx-ms-dynamic-propertieszusammen mitx-ms-dynamic-schemahinzufügen. Die Parameterreferenzen, die auf Eigenschaften verweisen, müssen als Pfadzeichenfolgen ausgedrückt werden.parameters: Bei dieser Eigenschaft handelt es sich um ein Objekt, bei dem jede Eingabeeigenschaft des aufgerufenen dynamischen Vorgangs entweder mit einem statischen Wertfeld oder einem dynamischen Verweis auf die Eigenschaft des Quellvorgangs definiert ist. Diese beiden Optionen werden im Folgenden definiert.value: Dies ist der Literalwert, der für den Eingabeparameter zu verwenden ist. Im folgenden Beispiel wird der Eingabeparameter des Vorgangs GetDynamicSchema namens Version mit einem statischen Wert von 2.0 definiert.{ "operationId": "GetDynamicSchema", "parameters": { "version": { "value": "2.0" } } }parameterReference: Dies ist der vollständige Parameter-Referenzpfad, beginnend mit dem Parameternamen, gefolgt von der Pfadzeichenfolge der zu referenzierenden Eigenschaft. Beispielsweise wird die Eingabeeigenschaft der Operation GetDynamicSchema namens property1, die sich unter dem Parameter destinationInputParam1 befindet, als ein dynamischer Verweis auf eine Eigenschaft namens property1 unter dem Parameter sourceInputParam1 des Quellvorgangs definiert.{ "operationId": "GetDynamicSchema", "parameters": { "destinationInputParam1/property1": { "parameterReference": "sourceInputParam1/property1" } } }Anmerkung
Wenn Sie auf eine Eigenschaft verweisen möchten, die als intern markiert ist und einen Standardwert hat, müssen Sie in diesem Fall anstelle von
parameterReferenceden Standardwert als statischen Wert in der Definition verwenden. Der Standardwert aus dem Schema wird nicht verwendet, wenn er mitparameterReferencedefiniert ist.Name Erforderlich Beschreibung operationId Ja Die Operation, die das Schema zurückgibt. parameters Ja Ein Objekt, das die Eingabeparameter bereitstellt, die erforderlich sind, um eine dynamische Schemaoperation aufzurufen. itemValuePath Nein Eine Pfadzeichenfolge, die auf die Eigenschaft verweist, die das Schema aufweist. Wenn nicht angegeben, wird angenommen, dass die Antwort das Schema im Stammobjekt enthalten ist. Wenn angegeben, muss die erfolgreiche Antwort die Eigenschaft enthalten. Für ein leeres oder undefiniertes Schema sollte dieser Wert null sein. Bei
x-ms-dynamic-propertieskönnen Parameterverweise mit der Pfadzeichenfolge der Eigenschaft, auf die verwiesen werden soll, sowohl für den Schlüssel als auch den Wert des Parameterverweises des dynamischen Vorgangs verwendet werden.{ "summary": "Tests dynamic schema with ambiguous references", "description": "Tests dynamic schema with ambiguous references.", "operationId": "TestDynamicSchemaWithAmbiguousReferences", "parameters": [{ "name": "query", "in": "body", "description": "query text.", "required": true, "schema": { "description": "Input body to execute the request", "type": "object", "properties": { "query": { "description": "Query Text", "type": "string" } } }, "x-ms-summary": "query text" }], "responses": { "200": { "description": "OK", "schema": { "x-ms-dynamic-schema": { "operationId": "GetDynamicSchema", "parameters": { "version": "2.0", "query": { "parameter": "query" } }, "value-path": "schema/valuePath" }, "x-ms-dynamic-properties": { "operationId": "GetDynamicSchema", "parameters": { "version": { "value": "2.0" }, "query/query": { "parameterReference": "query/query" } }, "itemValuePath": "schema/valuePath" } } }, "default": { "description": "Operation Failed." } } }
Nächster Schritt
Einen benutzerdefinierten Connector auf der Grundlage einer OpenAPI-Definition erstellen
Verwandte Informationen
Übersicht über benutzerdefinierte Connectors
Feedback senden
Wir freuen uns sehr über Feedback zu Problemen mit unserer Connector-Plattform oder neuen Feature-Ideen. Wenn Sie Feedback geben möchten, gehen Sie zu Probleme melden oder Hilfe zu Connectors und wählen Sie einen Feedbacktyp aus.