Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
GILT FÜR: Alle API Management-Ebenen
Die http-data-source
-Auflöserrichtlinie konfiguriert die HTTP-Anforderung und optional die HTTP-Antwort, um Daten für einen Objekttyp und ein Feld in einem GraphQL-Schema aufzulösen. Das Schema muss als GraphQL-API in API Management importiert werden.
Hinweis
Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.
<http-data-source>
<http-request>
<get-authorization-context>...get-authorization-context policy configuration...</get-authorization-context>
<set-backend-service>...set-backend-service policy configuration...</set-backend-service>
<set-method>...set-method policy configuration...</set-method>
<set-url>URL</set-url>
<include-fragment>...include-fragment policy configuration...</include-fragment>
<set-header>...set-header policy configuration...</set-header>
<set-body>...set-body policy configuration...</set-body>
<authentication-certificate>...authentication-certificate policy configuration...</authentication-certificate>
</http-request>
<backend>
<forward-request>...forward-request policy configuration...</forward-request>
<http-response>
<set-body>...set-body policy configuration...</set-body>
<xml-to-json>...xml-to-json policy configuration...</xml-to-json>
<find-and-replace>...find-and-replace policy configuration...</find-and-replace>
<publish-event>...publish-event policy configuration...</publish-event>
<include-fragment>...include-fragment policy configuration...</include-fragment>
</http-response>
</http-data-source>
Name | BESCHREIBUNG | Erforderlich |
---|---|---|
http-request | Gibt eine URL und untergeordnete Richtlinien an, um die HTTP-Anforderung des Resolvers zu konfigurieren. | Ja |
Back-End | Leitet optional die HTTP-Anforderung des Resolvers an einen Back-End-Dienst weiter, sofern angegeben. | Nein |
http-response | Gibt optional untergeordnete Richtlinien an, um die HTTP-Antwort des Resolvers zu konfigurieren. Wenn die Antwort nicht angegeben ist, wird sie als Rohzeichenfolge zurückgegeben. | Nein |
Hinweis
Sofern nicht anders angegeben, darf jedes untergeordnete Element höchstens einmal festgelegt werden. Geben Sie Elemente in der aufgeführten Reihenfolge an.
Element | BESCHREIBUNG | Erforderlich |
---|---|---|
get-authorization-context | Ruft einen Autorisierungskontext für die HTTP-Anforderung des Resolvers ab. | Nein |
set-backend-service | Leitet die HTTP-Anforderung des Resolvers an das angegebene Back-End um. | Nein |
include-fragment | Fügt ein Richtlinienfragment in die Richtliniendefinition ein. Wenn mehrere Fragmente vorhanden sind, fügen Sie zusätzliche include-fragment -Elemente hinzu. |
Nein |
set-method | Legt die Methode der HTTP-Anforderung des Auflösers fest. | Ja |
set-url | Die URL der HTTP-Anforderung des Auflösers. | Ja |
set-header | Legt einen Header in der HTTP-Anforderung des Auflösers fest. Wenn mehrere Header vorhanden sind, fügen Sie zusätzliche header -Elemente hinzu. |
Nein |
set-body | Legt den Text in der HTTP-Anforderung des Auflösers fest. | Nein |
authentication-certificate | Authentifiziert sich mithilfe eines Clientzertifikats in der HTTP-Anforderung des Auflösers. | Nein |
Element | BESCHREIBUNG | Erforderlich |
---|---|---|
forward-request | Leitet die HTTP-Anforderung des Resolvers an einen konfigurierten Back-End-Dienst weiter. | Nein |
Hinweis
Sofern nicht anders angegeben, darf jedes untergeordnete Element höchstens einmal festgelegt werden. Geben Sie Elemente in der aufgeführten Reihenfolge an.
Name | BESCHREIBUNG | Erforderlich |
---|---|---|
set-body | Legt den Text in der HTTP-Antwort des Auflösers fest. | Nein |
xml-to-json | Transformiert die HTTP-Antwort des Auflösers von XML in JSON. | Nein |
find-and-replace | Sucht eine Teilzeichenfolge in der HTTP-Antwort des Auflösers und ersetzt sie durch eine andere Teilzeichenfolge. | Nein |
publish-event | Veröffentlicht ein Ereignis für ein oder mehrere Abonnements, die im GraphQL-API-Schema angegeben sind. | Nein |
include-fragment | Fügt ein Richtlinienfragment in die Richtliniendefinition ein. Wenn mehrere Fragmente vorhanden sind, fügen Sie zusätzliche include-fragment -Elemente hinzu. |
Nein |
Im folgenden Beispiel wird eine Abfrage aufgelöst, indem ein HTTP-GET
-Aufruf an eine Back-End-Datenquelle ausgeführt wird.
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
<http-data-source>
<http-request>
<set-method>GET</set-method>
<set-url>https://data.contoso.com/get/users</set-url>
</http-request>
</http-data-source>
Im folgenden Beispiel wird eine Liquid-Vorlage verwendet, die zum Verwenden in der set-body-Richtlinie unterstützt wird, um in der HTTP-Antwort auf eine Abfrage eine Liste zurückzugeben. Außerdem wird das username
Feld in der Antwort der REST-API in die GraphQL-Antwort name
umbenannt.
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
<http-data-source>
<http-request>
<set-method>GET</set-method>
<set-url>https://data.contoso.com/users</set-url>
</http-request>
<http-response>
<set-body template="liquid">
[
{% JSONArrayFor elem in body %}
{
"name": "{{elem.username}}"
}
{% endJSONArrayFor %}
]
</set-body>
</http-response>
</http-data-source>
Im folgenden Beispiel wird eine Mutation aufgelöst, die Daten einfügt, indem sie eine POST
-Anforderung an eine HTTP-Datenquelle stellt. Der Richtlinienausdruck in der set-body
-Richtlinie der HTTP-Anforderung ändert ein name
-Argument, das in der GraphQL-Abfrage als deren Textkörper übergeben wird. Der gesendete Text sieht wie die folgende JSON aus:
{
"name": "the-provided-name"
}
type Query {
users: [User]
}
type Mutation {
makeUser(name: String!): User
}
type User {
id: String!
name: String!
}
<http-data-source>
<http-request>
<set-method>POST</set-method>
<set-url>https://data.contoso.com/user/create </set-url>
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@{
var args = context.GraphQL.Arguments;
JObject jsonObject = new JObject();
jsonObject.Add("name", args["name"])
return jsonObject.ToString();
}</set-body>
</http-request>
</http-data-source>
Im folgenden Beispiel wird die orderById
-Abfrage aufgelöst, indem ein HTTP-GET
-Aufruf an eine Back-End-Datenquelle gesendet und ein JSON-Objekt zurückgegeben wird, das die Kunden-ID und den Typ enthält. Der Kundentyp ist eine Union aus den Typen RegisteredCustomer
und GuestCustomer
.
type Query {
orderById(orderId: Int): Order
}
type Order {
customerId: Int!
orderId: Int!
customer: Customer
}
enum AccountType {
Registered
Guest
}
union Customer = RegisteredCustomer | GuestCustomer
type RegisteredCustomer {
accountType: AccountType!
customerId: Int!
customerGuid: String!
firstName: String!
lastName: String!
isActive: Boolean!
}
type GuestCustomer {
accountType: AccountType!
firstName: String!
lastName: String!
}
In diesem Beispiel simulieren wir die Kundenergebnisse aus einer externen Quelle und hartcodieren die abgerufenen Ergebnisse in der Richtlinie set-body
. Das Feld __typename
wird verwendet, um den Typ des Kunden zu bestimmen.
<http-data-source>
<http-request>
<set-method>GET</set-method>
<set-url>https://data.contoso.com/orders/</set-url>
</http-request>
<http-response>
<set-body>{"customerId": 12345, "accountType": "Registered", "__typename": "RegisteredCustomer" }
</set-body>
</http-response>
</http-data-source>
Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier:
Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrieren