Mengkonfigurasi resolver di AWS AppSync - AWS AppSync

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

Mengkonfigurasi resolver di AWS AppSync

Di bagian sebelumnya, Anda mempelajari cara membuat skema GraphQL dan sumber data, lalu menghubungkannya bersama dalam layanan. AWS AppSync Dalam skema Anda, Anda mungkin telah menetapkan satu atau beberapa bidang (operasi) dalam kueri dan mutasi Anda. Sementara skema menggambarkan jenis data yang akan diminta operasi dari sumber data, skema tersebut tidak pernah menerapkan bagaimana operasi tersebut akan berperilaku di sekitar data.

Perilaku operasi selalu diimplementasikan dalam resolver, yang akan dikaitkan dengan bidang yang melakukan operasi. Untuk informasi selengkapnya tentang cara kerja resolver secara umum, lihat halaman Resolver.

Di AWS AppSync, resolver Anda terkait dengan runtime, yang merupakan lingkungan di mana resolver Anda mengeksekusi. Runtime mendikte bahasa tempat resolver Anda akan ditulis. Saat ini ada dua runtime yang didukung: APPSYNC _JS (JavaScript) dan Apache Velocity Template Language (). VTL

Saat menerapkan resolver, ada struktur umum yang mereka ikuti:

  • Sebelum langkah: Ketika permintaan dibuat oleh klien, resolver untuk bidang skema yang digunakan (biasanya kueri, mutasi, langganan Anda) diteruskan data permintaan. Penyelesai akan mulai memproses data permintaan dengan penangan langkah sebelum, yang memungkinkan beberapa operasi pra-pemrosesan dilakukan sebelum data bergerak melalui resolver.

  • Fungsi: Setelah langkah sebelum berjalan, permintaan diteruskan ke daftar fungsi. Fungsi pertama dalam daftar akan dijalankan terhadap sumber data. Fungsi adalah subset dari kode resolver Anda yang berisi permintaan dan penangan responsnya sendiri. Handler permintaan akan mengambil data permintaan dan melakukan operasi terhadap sumber data. Response handler akan memproses respon sumber data sebelum meneruskannya kembali ke daftar. Jika ada lebih dari satu fungsi, data permintaan akan dikirim ke fungsi berikutnya dalam daftar yang akan dieksekusi. Fungsi dalam daftar akan dijalankan secara serial dalam urutan yang ditentukan oleh pengembang. Setelah semua fungsi dieksekusi, hasil akhir diteruskan ke langkah setelahnya.

  • Langkah setelah: Langkah setelah adalah fungsi handler yang memungkinkan Anda melakukan beberapa operasi akhir pada respons fungsi akhir sebelum meneruskannya ke respons GraphQL.

Aliran ini adalah contoh dari resolver pipa. Resolver pipeline didukung di kedua runtime. Namun, ini adalah penjelasan yang disederhanakan tentang apa yang dapat dilakukan oleh penyelesai pipa. Juga, kami hanya menjelaskan satu konfigurasi resolver yang mungkin. Untuk informasi selengkapnya tentang konfigurasi resolver yang didukung, lihat ikhtisar JavaScript resolver untuk APPSYNC _JS atau ringkasan template pemetaan Resolver untuk. VTL

Seperti yang Anda lihat, resolver bersifat modular. Agar komponen resolver berfungsi dengan baik, mereka harus dapat mengintip ke dalam keadaan eksekusi dari komponen lain. Dari bagian Resolvers, Anda tahu bahwa setiap komponen dalam resolver dapat diteruskan informasi penting tentang status eksekusi sebagai satu set argumen (args,context, dll.). Dalam AWS AppSync, ini ditangani secara ketat oleh. context Ini adalah wadah untuk informasi tentang bidang yang sedang diselesaikan. Ini dapat mencakup semuanya mulai dari argumen yang diteruskan, hasil, data otorisasi, data header, dll. Untuk informasi selengkapnya tentang konteksnya, lihat referensi objek konteks Resolver untuk APPSYNC _JS atau referensi konteks template pemetaan Resolver untuk. VTL

Konteksnya bukan satu-satunya alat yang dapat Anda gunakan untuk mengimplementasikan resolver Anda. AWS AppSync mendukung berbagai utilitas untuk menghasilkan nilai, penanganan kesalahan, penguraian, konversi, dll. Anda dapat melihat daftar utilitas di sini untuk APPSYNC _JS atau di sini untukVTL.

Di bagian berikut, Anda akan belajar cara mengkonfigurasi resolver di GraphQL Anda. API