Başlarken
BaşlarkenSema introspeksiyonu nedir

Sema introspeksiyonu nedir

Sema introspeksiyonu, GraphQL'in şema hakkında bilgi sağlama mekanizmasıdır; bu bilgiler aynı GraphQL dili kullanılarak alınır. GraphiQL ve GraphQL Voyager gibi istemcilerin GraphQL şemasıyla etkileşime girmemize yardımcı olabilmesi, introspeksiyon sayesinde mümkündür.

Bu istemciler, şemaya ait tam veriyi elde etmek için her zaman aynı introspeksiyon query'sini çalıştırır:

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
              }
            }
          }
        }
      }
    }
  }
}