Як перевірити GraphQL за допомогою листоноші

1. Огляд

У цьому короткому посібнику ми покажемо, як тестувати кінцеві точки GraphQL за допомогою Postman.

2. Огляд схеми та методи

Ми використовуватимемо кінцеві точки, створені в нашому підручнику з GraphQL. Нагадуємо, схема містить визначення, що описують публікації та авторів:

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

Крім того, у нас є методи відображення публікацій та написання нових:

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

При використанні мутації для збереження даних обов’язкові поля позначаються знаком оклику . Також зауважте, що в нашій мутації поверненим типом є Post , але в Query ми отримаємо список об’єктів Post .

Вищезазначену схему можна завантажити в розділі API поштарки - просто додайте новий API із типом GraphQL і натисніть « Створити колекцію» :

Після завантаження нашої схеми ми можемо легко писати зразки запитів, використовуючи підтримку автозаповнення PostQL для GraphQL .

3. Запити GraphQL у поштарці

Перш за все, Postman дозволяє нам надсилати тіло у форматі GraphQL - ми просто обираємо опцію GraphQL нижче:

Потім ми можемо написати власний запит GraphQL, такий як той, який отримує заголовок , категорію та ім’я автора в розділі QUERY:

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

І, як результат, ми отримаємо:

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

Також можна надіслати запит із використанням необробленого формату , але ми повинні додати Content-Type: application / graphql у розділ заголовків. І в цьому випадку тіло виглядає однаково.

Наприклад, ми можемо оновити заголовок, текст, категорію, отримати ідентифікатор та заголовок як відповідь:

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

Тип операції - як запит і мутація - можна опустити з тіла запиту, якщо ми використовуємо скорочений синтаксис. У цьому випадку ми не можемо використовувати ім’я операції та змінні, але рекомендується використовувати ім’я операції для полегшення реєстрації та налагодження.

4. Використання змінних

У розділі змінних ми можемо створити схему у форматі JSON, яка буде призначати значення змінним. Це дозволяє уникнути введення аргументів у рядок запиту:

Отже, ми можемо змінити тіло recentPosts у розділі QUERY, щоб динамічно призначати значення зі змінних:

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

І ми можемо відредагувати розділ GRAPHQL VARIABLES, встановивши для нас такі змінні:

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

5. Підсумок

Ми можемо легко протестувати GraphQL за допомогою Postman, що також дозволяє імпортувати схему та генерувати запити до неї.

Колекцію запитів можна знайти на GitHub.