Cara Menguji GraphQL Menggunakan Postman

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kami akan menunjukkan cara menguji titik akhir GraphQL menggunakan Postman.

2. Gambaran Keseluruhan dan Kaedah Skema

Kami akan menggunakan titik akhir yang dibuat dalam tutorial GraphQL kami. Sebagai peringatan, skema mengandungi definisi yang menerangkan catatan dan pengarang:

type Post { id: ID! title: String! text: String! category: String author: Author! } type Author { id: ID! name: String! thumbnail: String posts: [Post]! }

Selain itu, kami mempunyai kaedah untuk memaparkan catatan dan menulis yang baru:

type Query { recentPosts(count: Int, offset: Int): [Post]! } type Mutation { writePost(title: String!, text: String!, category: String) : Post! }

Semasa menggunakan mutasi untuk menyimpan data, medan yang diperlukan ditandai dengan tanda seru . Perhatikan juga bahawa dalam Mutasi kami , jenis yang dikembalikan adalah Pos , tetapi dalam Pertanyaan, kami akan mendapat senarai objek Pos .

Skema di atas boleh dimuat di bahagian Postman API - cukup tambahkan API Baru dengan jenis GraphQL dan tekan Hasilkan Koleksi :

Setelah memuatkan skema kami, kami dapat menulis contoh pertanyaan dengan mudah menggunakan sokongan pelengkap automatik Postman untuk GraphQL .

3. Permintaan GraphQL di Postman

Pertama sekali, Postman membolehkan kami menghantar isi dalam format GraphQL - kami hanya memilih pilihan GraphQL di bawah:

Kemudian, kita dapat menulis pertanyaan GraphQL asli, seperti yang memberi kita tajuk , kategori , dan nama pengarang ke bahagian QUERY:

query { recentPosts(count: 1, offset: 0) { title category author { name } } }

Hasilnya, kami akan mendapat:

{ "data": { "recentPosts": [ { "title": "Post", "category": "test", "author": { "name": "Author 0" } } ] } }

Kami juga boleh menghantar permintaan menggunakan format mentah , tetapi kami harus menambahkan Content-Type: application / graphql ke bahagian tajuk. Dan, dalam kes ini, badan kelihatan sama.

Sebagai contoh, kita boleh mengemas kini tajuk, teks, kategori, mendapatkan id dan tajuk sebagai respons:

mutation { writePost ( title: "Post", text: "test", category: "test", ) { id title } }

Jenis operasi - seperti pertanyaan dan mutasi - dapat dihilangkan dari badan pertanyaan selagi kita menggunakan sintaks pendek. Dalam kes ini, kami tidak dapat menggunakan nama operasi dan pemboleh ubah, tetapi disarankan untuk menggunakan nama operasi untuk pembalakan dan debug yang lebih mudah.

4. Menggunakan Pemboleh ubah

Di bahagian pemboleh ubah, kita dapat membuat skema dalam format JSON yang akan memberikan nilai pada pemboleh ubah. Ini mengelakkan menaip argumen dalam rentetan pertanyaan:

Oleh itu, kita boleh mengubah badan Post terbaru di bahagian QUERY untuk menetapkan nilai dari pemboleh ubah secara dinamik:

query recentPosts ($count: Int, $offset: Int) { recentPosts (count: $count, offset: $offset) { id title text category } }

Dan kita boleh mengedit bahagian GRAFIK VARIABLES dengan apa yang kita mahu pemboleh ubah kita tetapkan kepada:

{ "count": 1, "offset": 0 }

5. Ringkasan

Kami dapat menguji GraphQL dengan mudah menggunakan Postman, yang juga memungkinkan kami mengimport skema dan menghasilkan pertanyaan untuknya.

Koleksi permintaan boleh didapati di GitHub.