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, string>) : 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 cache.
cachingKeyUntuk informasi selengkapnya tentang caching, lihat Perilaku cache.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 acara pemberitahuan langganan dievaluasi terhadap filter langganan yang disediakan dan mengirimkan pemberitahuan kepada klien jika semua filter mengevaluasi.
trueArgumennya adalahfilterJsonObject(Informasi lebih lanjut tentang argumen ini dapat ditemukan di bawah di filterJsonObject bagian Argumen:.). Lihat Pemfilteran langganan yang disempurnakan.catatan
Anda dapat menggunakan fungsi ekstensi ini hanya di handler 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, lalu membatalkan langganan yang diberikan jika filter mengevaluasi.
trueArgumennya adalahfilterJsonObject(Informasi lebih lanjut tentang argumen ini dapat ditemukan di bawah di filterJsonObject bagian Argumen:.). Lihat Pemfilteran langganan yang disempurnakan.catatan
Anda dapat menggunakan fungsi ekstensi ini hanya di handler 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 invalidationJsonObject bagian Argumen:.).catatan
Ekstensi ini hanya dapat digunakan dalam template pemetaan respons dari resolver mutasi.
Anda hanya dapat menggunakan paling banyak lima panggilan
extensions.invalidateSubscriptions()metode unik dalam satu permintaan. Jika Anda melebihi batas ini, Anda akan menerima kesalahan GraphQL.
Argumen: filterJsonObject
Objek JSON mendefinisikan filter langganan atau pembatalan. Ini adalah array 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 untuk dibandingkan denganfieldNamenilai notifikasi langganan.
Berikut ini adalah contoh penugasan atribut ini:
{ "fieldName" : "severity", "operator" : "le", "value" : context.result.severity }
Argumen: invalidationJsonObject
invalidationJsonObjectMendefinisikan sebagai berikut:
-
subscriptionField— Langganan skema GraphQL untuk membatalkan. Langganan tunggal, didefinisikan sebagai string disubscriptionField, dianggap untuk pembatalan. -
payload— Daftar pasangan kunci-nilai yang digunakan sebagai input untuk membatalkan langganan jika filter pembatalan mengevaluasi terhadap nilainya.trueContoh berikut membatalkan klien yang berlangganan dan terhubung menggunakan
onUserDeletelangganan saat filter pembatalan yang ditentukan dalam resolver langganan mengevaluasi terhadap nilainya.truepayloadexport const request = (ctx) => ({ payload: null }); export function response(ctx) { extensions.invalidateSubscriptions({ subscriptionField: 'onUserDelete', payload: { group: 'Developer', type: 'Full-Time' }, }); return ctx.result; }