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
-
Bagian kebijakan:
http-response
elemen dalamhttp-data-source
resolver - Cakupan kebijakan: Hanya pemecah masalah GraphQL
- Gateway: klasik, v2, konsumsi
Catatan penggunaan
- Kebijakan ini hanya dipanggil ketika kueri atau mutasi GraphQL terkait dijalankan.
- Resolver tidak boleh ditentukan untuk langganan yang sesuai. Menentukan
publish-event
kebijakan pada kueri sumber atau mutasi cukup untuk memicu peristiwa langganan.
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>
Kebijakan terkait
Konten terkait
Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat:
- Tutorial: Mengubah dan melindungi API Anda
- Referensi Kebijakan untuk daftar lengkap pernyataan kebijakan dan pengaturannya
- Ekspresi kebijakan
- Mengatur atau mengedit kebijakan
- Menggunakan kembali konfigurasi kebijakan
- Repositori cuplikan kebijakan
- Toolkit kebijakan Azure API Management
- Kebijakan penulis menggunakan Microsoft Copilot di Azure