Sdílet prostřednictvím


Publikování události do odběru GraphQL

PLATÍ PRO: Všechny úrovně služby API Management

Zásada publish-event publikuje událost do jednoho nebo více odběrů zadaných ve schématu rozhraní GraphQL API. Nakonfigurujte zásadu v překladači GraphQL pro související pole ve schématu pro jiný typ operace, jako je například mutaci. Za běhu se událost publikuje pro připojené klienty GraphQL. Přečtěte si další informace o rozhraních GraphQL API ve službě API Management.

Poznámka:

Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.

Prohlášení o zásadách

<http-data-source>
<!-- http-data-source is an example resolver policy -->
    <http-request>
    [...]
    </http-request>
    <http-response>
        [...]
        <publish-event>
            <targets>
                <graphql-subscription id="subscription field" />
            </targets>
        </publish-event>
    </http-response>
</http-data-source>

Elementy

Název Popis Povinní účastníci
cíle Jedno nebo více odběrů ve schématu GraphQL zadané v target dílčích poplatcích, do kterých je událost publikovaná. Ano

Využití

Poznámky k využití

  • Tato zásada se vyvolá pouze v případě, že se spustí související dotaz GraphQL nebo mutaci.

Příklad

Následující příklad definice zásady je nakonfigurován v překladač pro createUser mutaci. Publikuje událost do odběru onUserCreated .

Příklad schématu

type User {
  id: Int!
  name: String!
}


type Mutation {
    createUser(id: Int!, name: String!): User
}

type Subscription {
    onUserCreated: User!
}

Ukázková zásada

<http-data-source>
    <http-request>
        <set-method>POST</set-method>
        <set-url>https://contoso.com/api/user</set-url>
        <set-body template="liquid">{ "id" : {{body.arguments.id}}, "name" : "{{body.arguments.name}}"}</set-body>
    </http-request>
    <http-response>
        <publish-event>
            <targets>
                <graphql-subscription id="onUserCreated" />
            </targets>
        </publish-event>
    </http-response>
</http-data-source>

Další informace o práci se zásadami najdete v tématech: