fullstack GraphQL学习笔记(7)工具和生态系统
1、内省
客户端可以向服务端请求schema的信息:通过__schema
query {
__schema {
types {
name
}
}
}
假设schema如下:
type Query {
author(id: ID!): Author
}
type Author {
posts: [Post!]!
}
type Post {
title: String!
}
那么上面的查询会返回:
{
"data": {
"__schema": {
"types": [
{
"name": "Query"
},
{
"name": "Author"
},
{
"name": "Post"
},
{
"name": "ID"
},
{
"name": "String"
},
{
"name": "__Schema"
},
{
"name": "__Type"
},
{
"name": "__TypeKind"
},
{
"name": "__Field"
},
{
"name": "__InputValue"
},
{
"name": "__EnumValue"
},
{
"name": "__Directive"
},
{
"name": "__DirectiveLocation"
}
]
}
}
}
我们可以得到所有类型的名称,包括单一类型和复合类型。内省不仅可以获取类型的名称,还可以获取类型的其他信息,如下:
{
__type(name: "Author") {
name
description
}
}
得到的结果:
{
"data": {
"__type": {
"name": "Author",
"description": "The author of a post.",
}
}
}
可以看到GraphQL的内省功能提供了强大的能力,有很多的工具都是依赖GraphQL的自身功能。使用GraphQL最有用的工具GraphiQL,就是主要依赖内省功能。
Graph-playGround也是一款非常强大的IDE工具。
浙公网安备 33010602011771号