Как я мог бы получить schema.json от https://example.com/graphql используя apollo-tooling

#graphql #apollo-android

#graphql #apollo-android

Вопрос:

В настоящее время я пишу сторонний клиент для веб-сайта, но он не предоставляет интерфейс, поэтому я пытаюсь самостоятельно сканировать данные. Веб-сайт использует GraphQL, поэтому я использую apollo-android в своем проекте, прочитав README.md из apollo-CLI у меня все еще возникают проблемы с созданием файла schema.json. Не могли бы вы рассказать мне о подробных шагах по созданию schema.json?

Ответ №1:

Для schema.json у вас должен быть apollo-codegen, который используется для отправки запроса самоанализа на сервер и получения schema.json.

Для получения apollo-codegen выполните следующее из командной строки, чтобы установить его:

  npm install apollo-codegen -g
  

Для отправки запроса самоанализа и получения schema.json выполните следующее:

  apollo-codegen download-schema https://api.github.com/graphql --output schema.json
  

Заменить https://api.github.com/graphql с вашей ссылкой

Затем вы можете найти файл schema.json, сохраненный в папке, из которой вы запускали вышеуказанные команды.

Источник

Комментарии:

1. В вопросе указано «но он не предоставляет интерфейс», в случае, если конечная точка не поддерживает ответы на запросы о своей собственной структуре, тогда OP необходимо будет следовать методам, описанным здесь blog.apollographql.com /…

Ответ №2:

apollo-codegen тем временем его заменили на apollo :

Команда ‘apollo-codegen’ была заменена более мощным CLI ‘apollo’. Переключитесь на ‘apollo’, чтобы обеспечить будущие обновления, и посетитеhttps://npm.im/apollo#code-generation для получения дополнительной информации.

Итак, это было бы:

 sudo npm install apollo -g
  

И это опции:

 $ apollo client:download-schema --help
Download a schema from Apollo or a GraphQL endpoint in JSON or SDL format

USAGE
  $ apollo client:download-schema OUTPUT

ARGUMENTS
  OUTPUT  [default: schema.json] Path to write the introspection result to. Can be `.graphql`, `.gql`, `.graphqls`, or `.json`

OPTIONS
  -c, --config=config                    Path to your Apollo config file
  -g, --graph=graph                      The ID for the graph in Apollo to operate client commands with. Overrides config file if set.
  -v, --variant=variant                  The variant of the graph in Apollo to associate this client to
  --clientName=clientName                Name of the client that the queries will be attached to
  --clientReferenceId=clientReferenceId  Reference id for the client which will match ids from client traces, will use clientName if not provided
  --clientVersion=clientVersion          The version of the client that the queries will be attached to
  --endpoint=endpoint                    The URL for the CLI use to introspect your service
  --excludes=excludes                    Glob of files to exclude for GraphQL operations. Caveat: this doesn't currently work in watch mode
  --header=header                        Additional header to send during introspection. May be used multiple times to add multiple headers. NOTE: The `--endpoint` flag is REQUIRED if using the `--header` flag.
  --includes=includes                    Glob of files to search for GraphQL operations. This should be used to find queries *and* any client schema extensions
  --key=key                              The API key to use for authentication to Apollo
  --queries=queries                      Deprecated in favor of the includes flag
  --tagName=tagName                      Name of the template literal tag used to identify template literals containing GraphQL 
                                         queries in Javascript/Typescript code
  

Например:

 apollo client:download-schema --endpoint=https://api.github.com/graphql schema.json
  

Комментарии:

1. Примечание: apollo в настоящее время не работает с GraphQl v> 15.