Как показать схему GraphQL на стороне клиента (инструменты тестирования, такие как почтальон) - PullRequest
0 голосов
/ 09 апреля 2020

Я использую Node.js и GraphQL для создания сервера API.

Мне было интересно, как я могу включить функцию, которую схема будет отображать автоматически при использовании таких инструментов, как Postman / GraphQL Playground для отправки запросов на удаленные конечные точки API (в настоящее время использующие heroku).

Когда я запускаю сервер и GraphQL Playground на локальном хосте, он показывает схему и документы с правой стороны, как показано ниже.

enter image description here

Но когда я изменяю конечную точку на удаленный сервер (в данном случае heroku), он не отображает никакой схемы или документов. Боковая панель со схемой и документами продолжает загружаться, как показано на рисунке ниже (я скрываю URL для проблемы конфиденциальности)

enter image description here

Также не отображается в Почтальоне

enter image description here

Нужно ли что-то настраивать или использовать какой-либо пакет на моем сервере, чтобы он автоматически возвращался и отображал схему на стороне клиента?

Спасибо.

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете попробовать либо установить флаг introspection: true в параметрах конструктора вашего сервера apollo, либо, если это подходит для ваших нужд, развернуть на heroku версию вашего приложения для разработки.

Объяснение:
Чтобы увидеть схему и документы, ваш клиент должен сначала извлечь ее. Этот запрос на схему graphQL обычно называется «самоанализом».

Наличие полной схемы бэкэнда API-интерфейса graphQL, несомненно, удобно при разработке.
Однако, когда наше приложение работает в производственной среде, мы обычно следует ожидать вредоносных клиентов. Поэтому отправка самоанализа в производственном режиме может быть небезопасной, поскольку это даст много дополнительной информации потенциальному злоумышленнику.

Именно поэтому самоанализ в рабочей среде для текущей версии appolo по умолчанию отключен -server.

...