zoukankan      html  css  js  c++  java
  • [GraphQL] Use GraphQLList with GraphQLObject Types

    When working with collections of things in GraphQL, we'll always reach out for the GraphQLListType. In this video, we'll learn how to use GraphQLList from the graphql package in combination with a GraphQLObject Type to create a field that returns a collection in our Schema.

    We can use GraphQLList to fetch list objects:

    const queryType = new GraphQLObjectType({
        name: 'QueryType',
        description: 'The root query type',
        fields :{
            videos: {
                type: new GraphQLList(videoType),
                resolve: getVideos
            },
            video: {
                type: videoType,
                args: {
                    id: {
                        type : new GraphQLNonNull(GraphQLID),
                        description: 'The id of the video'
                    }
                },
                resolve: (_, args) => getVideoById(args.id)
            }
        }
    });

    Data:

    const videoA = {
        id: 'a',
        title: 'Create a GraphQL Schema',
        duration: 120,
        watched: true,
    };
    const videoB = {
        id: 'b',
        title: 'Ember.js CLI',
        duration: 240,
        watched: false,
    };
    const videos = [videoA, videoB];
    const getVideoById = (id) => new Promise((resolve) => {
        const [video] = videos.filter((video) => {
            return video.id === id;
        });
    
        resolve(video);
    });
    
    const getVideos = () => new Promise((resolve) => resolve(videos));
    
    exports.getVideoById = getVideoById;
    exports.getVideos = getVideos;
  • 相关阅读:
    [转]Design Time Serialization
    啥都不说了,不枉熬油点灯了
    Eclips汉化
    FreeBSD 上用上苹果黑体,效果很棒
    使用Portupgrade
    fvwm2rc
    make.conf 配置优化
    基于FreeBSD5.4全能服务器安装(dns,ftp,apache,qmail)
    portssupfile
    关于FreeBSD 5优化的补充
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6269835.html
Copyright © 2011-2022 走看看