Генератор JSON интроспекции GraphQL — Numio
Преобразует GraphQL SDL в JSON-результат стандартного запроса интроспекции с помощью @graphql-codegen/introspection. Вывод содержит объект __schema верхнего уровня с корневыми типами, всеми типами, включая встроенные, и директивами.
Получить schema.json для инструментов, которые ожидают JSON интроспекции, а не SDL, например некоторых плагинов IDE и генераторов клиентов.
Когда пригодится
- Получить schema.json для инструментов, которые ожидают JSON интроспекции, а не SDL, например некоторых плагинов IDE и генераторов клиентов.
- Посмотреть, как тип поля оборачивается в kind NON_NULL и LIST в данных интроспекции.
Как пользоваться
- Вставьте SDL схемы в редактор GraphQL Schema.
- Дождитесь JSON в панели Introspection JSON; даже схема с одним полем даёт около тысячи строк.
- Скопируйте или скачайте JSON и сохраните его, например, как schema.json.
GraphQL-схема
type Query {
hello(name: String): String!
}JSON интроспекции
{
"__schema": {
"queryType": {
"name": "Query"
},
"mutationType": null,
"subscriptionType": null,
"types": [
{
"kind": "OBJECT",
"name": "Query",
"description": null,
"fields": [
{
"name": "hello",
"description": null,
"args": [
{
"name": "name",
"description": null,
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
…Подробности и ограничения
Встроенные скаляры (String, Boolean), типы интроспекции (__Schema, __Type, __Field и другие) и встроенные директивы (include, skip, deprecated, specifiedBy) включаются всегда.
JSON не обёрнут в ключ "data"; он начинается сразу с __schema.
Преобразование выполняется в Web Worker в браузере. Страница принимает только схему и не обращается к работающему эндпоинту.
FAQ
Можно ли получить JSON интроспекции по URL?
Нет. Страница преобразует вставленный SDL и не отправляет запросы интроспекции на сервер. Сначала экспортируйте SDL со своего сервера, затем вставьте его сюда.
Включаются ли устаревшие поля?
Да. Каждое поле и значение enum перечисляется с isDeprecated и deprecationReason, поэтому поля с @deprecated выводятся с isDeprecated: true.
Почему вывод такой большой для маленькой схемы?
Результат интроспекции описывает всю систему типов, включая встроенные скаляры, метатипы интроспекции и определения директив, а не только ваши типы.