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.
cachingKeyUntuk informasi selengkapnya tentang caching, lihat Perilaku Caching.Contoh 1:
Contoh ini mengusir item yang di-cache untuk resolver yang dipanggil
Query.allClassesdi mana kunci caching dipanggil digunakan.context.arguments.semesterKetika mutasi dipanggil dan resolver berjalan, jika entri berhasil dihapus, maka respons berisiapiCacheEntriesDeletednilai 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 dievaluasi
true. Argumennya adalahfilterJsonObject(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.toSubscriptionFilteruntuk membuat filter Anda. extensions.setSubscriptionInvalidationFilter(filterJsonObject)-
Mendefinisikan filter pembatalan langganan. Filter langganan dievaluasi terhadap muatan pembatalan, kemudian membatalkan langganan yang diberikan jika filter mengevaluasi.
trueArgumennya adalahfilterJsonObject(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.toSubscriptionFilteruntuk 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 denganfieldNamenilai 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.trueContoh berikut membatalkan klien yang berlangganan dan terhubung menggunakan
onUserDeletelangganan saat filter pembatalan yang ditentukan dalam penyelesai langganan dievaluasi terhadaptruenilai.payloadexport const request = (ctx) => ({ payload: null }); export function response(ctx) { extensions.invalidateSubscriptions({ subscriptionField: 'onUserDelete', payload: { group: 'Developer', type: 'Full-Time' }, }); return ctx.result; }