product(id: 5) { title quantity tags } } type Query { viewer: User product(id: ID!): Product … } type Product { title: String quantity: Float! tags: [String] user: User … } Operation Type Fileds Selection Set Input type Output type Wrapper type Object type Scalar type
5) { title quantity users { email name id } } } Фрагменты query { viewer { ...UserInfo } product(id: 5) { title quantity users { ...UserInfo } } } fragment UserInfo on User { email name id }
id этого запроса { "id": 1, "variables": {} } Генерировать id, отправлять его на сервер. { "errors": [ {"message": "Give me the document!"} ] } Если сервер не знает такого запроса, он просит тело { "id": 1, "query": "query { viewer: { name } }", "variables": {} }
name } ... on Product { title } } } union UserOrProduct = User | Product type Query { info: UserOrProduct } type User { id: ID! name: String } type Product { id: ID! title: String }