Menerbitkan peristiwa ke langganan GraphQL

BERLAKU UNTUK: Semua tingkatAN API Management

Kebijakan menerbitkan publish-event peristiwa ke satu atau beberapa langganan yang ditentukan dalam skema API GraphQL. Konfigurasikan kebijakan dalam pemecah masalah GraphQL untuk bidang terkait dalam skema untuk jenis operasi lain seperti mutasi. Saat runtime, peristiwa diterbitkan ke klien GraphQL yang terhubung. Pelajari selengkapnya tentang API GraphQL di API Management.

Catatan

Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.

Pernyataan kebijakan

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

Elemen

Nama Deskripsi Wajib diisi
target Satu atau beberapa langganan dalam skema GraphQL, ditentukan dalam target subelemen, tempat peristiwa diterbitkan. Ya

Penggunaan

Catatan penggunaan

  • Kebijakan ini hanya dipanggil ketika kueri atau mutasi GraphQL terkait dijalankan.

Contoh

Contoh definisi kebijakan berikut dikonfigurasi dalam resolver untuk createUser mutasi. Ini menerbitkan peristiwa ke onUserCreated langganan.

Contoh skema

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


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

type Subscription {
    onUserCreated: User!
}

Contoh kebijakan

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

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: