Bagikan melalui


Menambahkan API GraphQL sintetis dan menyiapkan pemecah masalah bidang

BERLAKU UNTUK: Semua tingkat Manajemen API

Di API Management, Anda dapat menambahkan API GraphQL di salah satu dari dua model: pass-through ke titik akhir GraphQL yang ada, atau mengimpor skema GraphQL dan membuat API GraphQL sintetis dengan pemecah bidang kustom. Untuk informasi selengkapnya, lihat gambaran umum GraphQL.

Catatan

Saat ini, fitur ini tidak tersedia di ruang kerja.

Dalam artikel ini, Anda akan:

  • Impor skema GraphQL ke instans Azure API Management Anda.
  • Siapkan resolver untuk kueri GraphQL menggunakan titik akhir HTTP yang sudah ada.
  • Menguji API GraphQL.

Jika Anda ingin mengekspos titik akhir GraphQL yang ada sebagai API, lihat Mengimpor API GraphQL.

Prasyarat

  • Instans API Management yang ada. Buat jika Anda belum melakukannya.
  • File skema GraphQL yang valid dengan .graphql ekstensi.
  • Untuk skenario ini, titik akhir GraphQL backend bersifat opsional.

Pergi ke instans API Management Anda

  1. Di portal Azure , cari dan pilih layanan API Management :

    Cuplikan layar yang memperlihatkan layanan API Management di hasil pencarian.

  2. Pada halaman layanan API Management , pilih instans API Management Anda:

    Cuplikan layar yang menampilkan instans API Management di halaman layanan API Management.

Tambahkan skema GraphQL

  1. Di panel kiri, di bawah API, pilih API.

  2. Di bawah Tentukan API baru, pilih petak GraphQL.

    Cuplikan layar memilih petak peta GraphQL.

  3. Dalam kotak dialog, pilih Penuh, lalu masukkan nilai di bidang yang diperlukan, seperti yang dijelaskan dalam tabel berikut ini.

    Cuplikan layar halaman Buat dari skema GraphQL.

    Nilai Deskripsi
    Nama tampilan Nama yang akan ditampilkan untuk API GraphQL Anda.
    Nama Nama mentah API GraphQL. Otomatis terisi saat Anda mengetik nama tampilan.
    Jenis GraphQL Pilih Synthetic GraphQL untuk mengimpor dari file skema GraphQL.
    Titik akhir Fallback GraphQL Secara opsional masukkan URL dengan nama titik akhir GraphQL API. API Management meneruskan kueri GraphQL ke titik akhir ini saat pemecah masalah kustom tidak diatur untuk suatu bidang.
    Keterangan Menambahkan deskripsi API Anda.
    Skema URL Pilih skema berdasarkan titik akhir GraphQL Anda. Pilih salah satu opsi yang menyertakan skema WebSocket (WS atau WSS) jika API GraphQL Anda menyertakan jenis langganan. Pilihan defaultnya adalah HTTP(S).
    Akhiran URL API Tambahkan akhiran URL untuk mengidentifikasi API tertentu dalam instans API Management. Harus unik dalam instans API Management.
    URL Dasar Bidang yang tidak dapat diedit menampilkan URL dasar API Anda.
    Tagar Secara opsional kaitkan API GraphQL Anda dengan tag baru atau yang sudah ada.
    Produk Mengaitkan API GraphQL Anda dengan produk untuk memublikasikannya.
    Versi API ini? Pilih kotak centang untuk menerapkan skema penerapan versi ke API GraphQL Anda.
  4. Pilih Buat.

  5. Setelah API dibuat, tinjau atau ubah skema pada tab Skema .

Mengonfigurasi resolver

Konfigurasikan resolver untuk memetakan bidang dalam skema ke titik akhir HTTP yang sudah ada. Langkah-langkah tingkat tinggi disediakan di sini. Untuk detailnya, lihat Mengonfigurasi pemecah masalah GraphQL.

Misalkan Anda mengimpor skema GraphQL dasar berikut dan ingin menyiapkan pemecah masalah untuk users kueri.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. Di panel kiri, di bawah API, pilih API.

  2. Pilih GraphQL API Anda.

  3. Pada tab Skema , tinjau skema untuk bidang dalam tipe objek tempat Anda ingin mengonfigurasi pemecah masalah.

    1. Pilih bidang, lalu arahkan penunjuk di margin kiri.

    2. Pilih Tambahkan resolver.

      Cuplikan layar menambahkan pemecah masalah GraphQL di portal.

  4. Di panel Buat resolver :

    1. Perbarui properti Nama jika Anda mau, secara opsional masukkan Deskripsi, dan konfirmasi atau perbarui pilihan Tipe dan Bidang.
    2. Di Sumber data, pilih HTTP API.
  5. Di editor kebijakan Resolver, perbarui elemen <http-data-source> dengan elemen turunan untuk skenario Anda. Misalnya, resolver berikut mengakses bidang users dengan melakukan panggilan GET ke sumber data HTTP yang sudah ada.

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    Cuplikan layar konfigurasi resolver terhadap sebuah kebijakan di portal.

  6. Pilih Buat.

  7. Untuk mengatasi data untuk bidang lain dalam skema, ulangi langkah-langkah sebelumnya untuk membuat pemecah masalah lain.

Petunjuk

Saat Anda mengedit kebijakan resolver, pilih Jalankan Pengujian untuk memeriksa output dari sumber data, yang dapat Anda validasi terhadap skema. Jika terjadi kesalahan, respons menyertakan informasi pemecahan masalah.

Menguji API GraphQL Anda

  1. Buka instans API Management Anda.

  2. Di panel kiri, di bagian API , pilih API.

  3. Di bawah Semua API, pilih API GraphQL Anda.

  4. Pilih tab Uji untuk mengakses konsol Uji.

  5. Di bawah Header:

    1. Pilih header dari menu Nama .
    2. Masukkan nilai dalam kotak Nilai .
    3. Tambahkan lebih banyak header dengan memilih Tambahkan header.
    4. Hapus header dengan menggunakan tombol keranjang sampah.
  6. Jika Anda telah menambahkan produk ke GraphQL API Anda, tambahkan cakupan produk di bawah Terapkan cakupan produk.

  7. Di Editor kueri, lakukan salah satu hal berikut ini:

    1. Pilih setidaknya satu bidang atau subbidang dari daftar di menu di sebelah kiri editor. Bidang dan subbidang yang Anda pilih akan muncul di editor kueri.

    2. Mulailah mengetik di editor kueri untuk menulis kueri.

      Cuplikan layar editor kueri.

  8. Di bawah Variabel kueri, tambahkan variabel untuk menggunakan kembali kueri atau mutasi yang sama dan melewatkan nilai yang berbeda.

  9. Pilih Kirim.

  10. Menampilkan Respons.

    Cuplikan layar respons kueri pengujian.

  11. Ulangi langkah-langkah sebelumnya untuk menguji payload yang berbeda.

  12. Setelah selesai menguji, keluar dari konsol pengujian.

Mengamankan API GraphQL Anda

Amankan API GraphQL Anda dengan menerapkan kebijakan autentikasi dan otorisasi yang ada dan kebijakan validasi GraphQL untuk melindungi dari serangan khusus GraphQL.