Сведения об обозревателе GraphQL
GraphiQL, также упоминаемый в этой документации как обозреватель GraphQL, является "графической интерактивной IDE GraphQL в браузере".
Использование GraphiQL
Чтобы использовать приложение GraphiQL, скачайте и установите его с https://github.com/skevy/graphiql-app.
Настройка GraphiQL
- Получение токена OAuth.
- Запустите GraphiQL.
- В правом верхнем углу GraphiQL щелкните Edit HTTP Headers (Изменить заголовки HTTP).
- В поле Ключ введите
Authorization
. - В поле Значение введите
Bearer TOKEN
, заменивTOKEN
маркером OAuth с первого шага. - Установите флажок справа от токена, чтобы его сохранить.
- Чтобы вернуться в редактор, щелкните за пределами модального окна Изменить заголовки HTTP.
- В поле GraphQL Endpoint (Конечная точка GraphQL) введите
http(s)://<em>HOSTNAME</em>/api/graphql
. - В раскрывающемся меню Метод выберите POST.
Примечание. Дополнительные сведения о причинах POST
метода см. в разделе Формирование вызовов с помощью GraphQL.
Можно проверить доступ, сделав запрос себе:
query {
viewer {
login
}
}
Если все сработало правильно, будет отображаться ваше имя для входа. Все готово для начала выполнения запросов.
Доступ к документации на боковой панели
Все типы в схеме GraphQL включают поле description
, скомпилированное в документацию. Свертываемая панель Документация справа на странице обозревателя позволяет просматривать документацию по системе типов. Документация автоматически обновляется, а нерекомендуемые поля удаляются.
Боковая панель "Документы" содержит то же содержимое, которое автоматически создается из схемы в разделе "Документация по API GraphQL для GitHub", хотя в разных местах оно отформатировано по-разному.
Использование панели переменных
Некоторые примеры вызовов включают переменные, написанные так:
query($number_of_repos:Int!){
viewer {
name
repositories(last: $number_of_repos) {
nodes {
name
}
}
}
}
variables {
"number_of_repos": 3
}
Это правильный формат для отправки вызова с помощью POST
запроса в команде curl
(при условии, что вы экранируете новые строки).
Если вы хотите выполнить вызов в обозревателе, введите сегмент query
на главной панели и переменные на панели Переменные запроса под ним. Опустите слово variables
из обозревателя:
{
"number_of_repos": 3
}
Запрос поддержки
Для вопросов, отчетов об ошибках и обсуждений по GitHub Apps, OAuth Apps и разработке API ознакомьтесь с Обсуждения API и интеграции в сообществе GitHub. Обсуждения модерируются и обслуживаются сотрудниками GitHub, но гарантий того, что сотрудники GitHub ответят на вопросы, опубликованные на форуме, нет.
В службу поддержки GitHub можно обратиться напрямую через форму связи, чтобы получить:
- гарантированный ответ от сотрудников GitHub Enterprise Server;
- запросы на поддержку, связанные с конфиденциальными данными или частными проблемами;
- запросы функций;
- отзывы о продуктах GitHub Enterprise Server.
Устранение ошибок
Так как GraphQL является интроспективным, обозреватель поддерживает:
- Интеллектуальные опережающие вводы с учетом текущей схемы
- Предварительный просмотр ошибок проверки при вводе
Если вы вводите запрос с неправильным форматом или запрос, который не проходит проверку схемы, всплывающее окно предупредит вас об ошибке. При выполнении запроса ошибка возвращается в панель ответов.
Ответ GraphQL содержит несколько ключей: хэш data
и массив errors
.
{
"data": null,
"errors": [
{
"message": "Objects must have selections (field 'nodes' returns Repository but has no selections)",
"locations": [
{
"line": 5,
"column": 8
}
]
}
]
}
Возможно, вы столкнулись с непредвиденной ошибкой, не связанной со схемой. В этом случае сообщение будет содержать справочный код, который можно использовать, сообщая о проблеме:
{
"data": null,
"errors": [
{
"message": "Something went wrong while executing your query. This is most likely a GitHub bug. Please include \"7571:3FF6:552G94B:69F45B7:5913BBEQ\" when reporting this issue."
}
]
}
Примечание. GitHub рекомендует проверять наличие ошибок перед использованием данных в рабочей среде. В GraphQL сбой не является общим: часть запросов GraphQL может быть выполнена успешно, а другая — завершиться сбоем.