Olayı GraphQL aboneliğine yayımlama

UYGULANANLAR: Tüm API Management katmanları

İlke, publish-event GraphQL API şemasında belirtilen bir veya daha fazla aboneliğe bir olay yayımlar. Şemadaki ilgili bir alan için GraphQL çözümleyicisindeki ilkeyi mutasyon gibi başka bir işlem türü için yapılandırın. Çalışma zamanında olay bağlı GraphQL istemcilerinde yayımlanır. API Management'ta GraphQL API'leri hakkında daha fazla bilgi edinin.

Not

İlkenin öğelerini ve alt öğelerini ilke bildiriminde sağlanan sırayla ayarlayın. API Management ilkelerini ayarlama veya düzenleme hakkında daha fazla bilgi edinin.

İlke bildirimi

<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>

Öğeler

Veri Akışı Adı Açıklama Gerekli
Hedef GraphQL şemasında olayın yayımlandığı alt öğelerde target belirtilen bir veya daha fazla abonelik. Yes

Kullanım

Kullanım notları

  • Bu ilke yalnızca ilgili bir GraphQL sorgusu veya mutasyonu yürütülürse çağrılır.

Örnek

Aşağıdaki örnek ilke tanımı mutasyon için createUser bir çözümleyicide yapılandırılır. Abonelikte onUserCreated bir olay yayımlar.

Örnek şema

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


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

type Subscription {
    onUserCreated: User!
}

Örnek ilke

<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>

İlkelerle çalışma hakkında daha fazla bilgi için bkz: