[GraphQL] Use GraphQL's Object Type for Basic Types

Posted Answer1215

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[GraphQL] Use GraphQL's Object Type for Basic Types相关的知识,希望对你有一定的参考价值。

We can create the most basic components of our GraphQL Schema using GraphQL‘s Object Types. These types allow us to group related fields together under a specific type, such as a Video or a User, and then allows us to fetch these types when we query our schema. In this video, we‘ll learn how to write GraphQL Object Types in GraphQL‘s Schema language, as well as how to create resolvers for them, and ultimately how to query them.

 

We are going to refactor this code to make it more readable and meanful:

const { graphql, buildSchema } = require(graphql);

const schema = buildSchema(`
    type Query {
        id: ID,
        title: String,
        duration: Int,
        watched: Boolean
    }
    
    type Schema{
        query: Query
    }
`);

const resolvers = {
    id       : () => 1,
    title    : () => bar,
    duration : () => 180,
    watched  : true
};

const query = `
    query myFirstQuery {
        id,
        title,
        duration,
        watched
    }
`;

graphql(schema, query, resolvers)
.then((result) => console.log(result))
.catch(console.error)

 

‘id‘, ‘title‘, ‘duration‘, ‘watched‘ are video related. So we create a Video type.

const { graphql, buildSchema } = require(graphql);

const schema = buildSchema(`
    type Video {
        id: ID,
        title: String,
        duration: Int,
        watched: Boolean
    }
    
    type Query {
        video: Video
    }
    
    type Schema{
        query: Query
    }
`);

const resolvers = {
    video : () => ({
        id       : 1,
        title    : bar,
        duration : 180,
        watched  : true
    })
};

const query = `
    query myFirstQuery {
        video {
            id,
            title,
            duration,
            watched
        }
    }
`;

graphql(schema, query, resolvers)
.then((result) => console.log(result))
.catch(console.error)

 

以上是关于[GraphQL] Use GraphQL's Object Type for Basic Types的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL 中的图像上传

[React + GraphQL] Use useLazyQuery to manually execute a query with Apollo React Hooks

使用 express 记录所有 GraphQL 响应

如何使用 Passport 对 GraphQL 端点进行身份验证?

GraphQL - 无法缓存数据是 GraphQL 的一大弱点?

express-graphql:上下文始终未定义