เริ่มต้นใช้งาน
เริ่มต้นใช้งานSchema introspection คืออะไร

Schema introspection คืออะไร

Schema introspection คือกลไกของ GraphQL ในการให้ข้อมูลเกี่ยวกับ schema ซึ่งดึงข้อมูลโดยใช้ภาษา GraphQL เดียวกัน ด้วย introspection นี้เองที่ทำให้ไคลเอนต์อย่าง GraphiQL และ GraphQL Voyager สามารถช่วยให้เราโต้ตอบกับ GraphQL schema ได้

ไคลเอนต์เหล่านี้จะรัน introspection query เดิมเสมอเพื่อดึงข้อมูลทั้งหมดของ schema:

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