View a markdown version of this page

Ekstensi - AWS AppSync GraphQL

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Ekstensi

extensionsberisi serangkaian metode untuk membuat tindakan tambahan dalam resolver Anda.

extensions.evictFromApiCache(typeName: string, fieldName: string, keyValuePair: Record<string, any>) : Object

Mengusir item dari cache sisi AWS AppSync server. Argumen pertama adalah nama tipe. Argumen kedua adalah nama bidang. Argumen ketiga adalah objek yang berisi item pasangan kunci-nilai yang menentukan nilai kunci caching. Anda harus meletakkan item dalam objek dalam urutan yang sama dengan kunci caching di resolver yang di-cache. cachingKey Untuk informasi selengkapnya tentang caching, lihat Perilaku Caching.

Contoh 1:

Contoh ini mengusir item yang di-cache untuk resolver yang dipanggil Query.allClasses di mana kunci caching dipanggil digunakan. context.arguments.semester Ketika mutasi dipanggil dan resolver berjalan, jika entri berhasil dihapus, maka respons berisi apiCacheEntriesDeleted nilai dalam objek ekstensi yang menunjukkan berapa banyak entri yang dihapus.

import { util, extensions } from '@aws-appsync/utils'; export const request = (ctx) => ({ payload: null }); export function response(ctx) { extensions.evictFromApiCache('Query', 'allClasses', { 'context.arguments.semester': ctx.args.semester, }); return null; }
catatan

Fungsi ini hanya berfungsi untuk mutasi, bukan kueri.

extensions.setSubscriptionFilter(filterJsonObject)

Mendefinisikan filter langganan yang disempurnakan. Setiap peristiwa pemberitahuan langganan dievaluasi terhadap filter langganan yang disediakan dan mengirimkan pemberitahuan kepada klien jika semua filter dievaluasitrue. Argumennya adalah filterJsonObject (Informasi lebih lanjut tentang argumen ini dapat ditemukan di bawah di JsonObject bagian Argumen: filter.). Lihat Pen ingkatan penyaringan langganan.

catatan

Anda dapat menggunakan fungsi ekstensi ini hanya di pengendali respons dari resolver langganan. Juga, kami sarankan menggunakan util.transform.toSubscriptionFilter untuk membuat filter Anda.

extensions.setSubscriptionInvalidationFilter(filterJsonObject)

Mendefinisikan filter pembatalan langganan. Filter langganan dievaluasi terhadap muatan pembatalan, kemudian membatalkan langganan yang diberikan jika filter mengevaluasi. true Argumennya adalah filterJsonObject (Informasi lebih lanjut tentang argumen ini dapat ditemukan di bawah di JsonObject bagian Argumen: filter.). Lihat Pen ingkatan penyaringan langganan.

catatan

Anda dapat menggunakan fungsi ekstensi ini hanya di pengendali respons dari resolver langganan. Juga, kami sarankan menggunakan util.transform.toSubscriptionFilter untuk membuat filter Anda.

extensions.invalidateSubscriptions(invalidationJsonObject)

Digunakan untuk memulai pembatalan langganan dari mutasi. Argumennya adalah invalidationJsonObject (Informasi lebih lanjut tentang argumen ini dapat ditemukan di bawah di JsonObject bagian Argumen: invalidasi.).

catatan

Ekstensi ini hanya dapat digunakan dalam templat pemetaan respons dari resolver mutasi.

Anda hanya dapat menggunakan paling banyak lima panggilan extensions.invalidateSubscriptions() metode unik dalam permintaan tunggal. Jika Anda melebihi batas ini, Anda akan menerima kesalahan GraphQL.

Argumen: filter JsonObject

Objek JSON mendefinisikan filter langganan atau pembatalan. Ini adalah serangkaian filter dalam afilterGroup. Setiap filter adalah kumpulan filter individual.

{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 } ] }, { "filters" : [ { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }

Setiap filter memiliki tiga atribut:

  • fieldName— Bidang skema GraphQL.

  • operator— Jenis operator.

  • value— Nilai yang akan dibandingkan dengan fieldName nilai notifikasi berlangganan.

Berikut ini adalah contoh penugasan atribut ini:

{ "fieldName" : "severity", "operator" : "le", "value" : context.result.severity }

Argumen: pembatalan JsonObject

Ini men invalidationJsonObject definisikan sebagai berikut:

  • subscriptionField— Langganan skema GraphQL untuk membatalkan. Langganan tunggal, didefinisikan sebagai string disubscriptionField, dianggap tidak valid.

  • payload— Daftar pasangan kunci-nilai yang digunakan sebagai input untuk membatalkan langganan jika filter pembatalan dievaluasi terhadap nilainya. true

    Contoh berikut membatalkan klien yang berlangganan dan terhubung menggunakan onUserDelete langganan saat filter pembatalan yang ditentukan dalam penyelesai langganan dievaluasi terhadap true nilai. payload

    export const request = (ctx) => ({ payload: null }); export function response(ctx) { extensions.invalidateSubscriptions({ subscriptionField: 'onUserDelete', payload: { group: 'Developer', type: 'Full-Time' }, }); return ctx.result; }