Как запросить схему из сервиса GraphQL с помощью curl? - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть скрипт curl (в качестве замены для реального кода), который может POST завершать GraphQL моей компании и получать данные. Работает нормально.

Похоже, что можно также получить "схему", создав соответствующий запрос, но я не нашел способа сделать это на уровне HTTP.

Если это возможно, как будет выглядеть локон (данные)?

Существуют ли другие запросы, кроме «запроса», которые я могу использовать для выделения другой информации?

1 Ответ

2 голосов
/ 28 апреля 2020

Тело, в котором вы нуждаетесь, довольно сильно задействовано для запроса самоанализа, но я думаю, что вы ищете что-то вроде этого

introspection_query. json:

{ 
  "query": "query IntrospectionQuery {
      __schema {
        queryType { name }
        mutationType { name }
        subscriptionType { name }
        types {
          ...FullType
        }
        directives {
          name
          description
          locations
          args {
            ...InputValue
          }
        }
      }
    }

    fragment FullType on __Type {
      kind
      name
      description
      fields(includeDeprecated: true) {
        name
        description
        args {
          ...InputValue
        }
        type {
          ...TypeRef
        }
        isDeprecated
        deprecationReason
      }
      inputFields {
        ...InputValue
      }
      interfaces {
        ...TypeRef
      }
      enumValues(includeDeprecated: true) {
        name
        description
        isDeprecated
        deprecationReason
      }
      possibleTypes {
        ...TypeRef
      }
    }

    fragment InputValue on __InputValue {
      name
      description
      type { ...TypeRef }
      defaultValue
    }

    fragment TypeRef on __Type {
      kind
      name
      ofType {
        kind
        name
        ofType {
          kind
          name
          ofType {
            kind
            name
            ofType {
              kind
              name
              ofType {
                kind
                name
                ofType {
                  kind
                  name
                  ofType {
                    kind
                    name
                  }
                }
              }
            }
          }
        }
      }
    }"
}

и затем вы можно сделать

curl -i -X POST http://localhost:8080/graphql -H "Content-Type: application/json" -d @introspection_query.json

Позорно украдено у https://gist.github.com/martinheld/9fe32b7e2c8fd932599d36e921a2a825

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...