Neoclassical Philosophic Musings

    egg-graphql-apollo

    0.1.6 • Public • Published

    egg-graphql-apollo

    npm travis-ci Coverage Status npm

    插件参考了 egg-graphql,并与 egg-graphql 配置保持一致。不同的地方是文件结构定义和编写方式。

    egg-graphql-apollo 推荐 graphql 模型定义及 resolvers 等相关逻辑在 app/graphql 目录中实现。

    例如:

    // app/graphql/user_info.js
     
    exports.typeDef = `
    type UserInfo {
      id: Int!
      name: String!
      createdAt: Date! @date(format: "YYYY-MM-DD")
    }
    `;
     
    exports.resolver = {
      Query: {
        user(root, { id }, ctx) {
          return ctx.service.userInfo.fetchById(id);
        },
      },
    };
     
    exports.directiveResolver = {};
     
    exports.schemaDirective = {};
     

    每个 js 文件输出可选 typeDefresolverdirectiveResolverschemaDirective,具体见测试用例,API: graphql-tools。这样做的好处是业务归类清晰、graphql schema 可组合。

    你也可以编写 .graphql 文件,插件会加载并组合它们。

    安装

    $ npm i egg-graphql-apollo

    config/plugin.js 开启插件:

    exports.graphql = {
      package: 'egg-graphql-apollo',
    };

    config/config.${env}.js 配置 graphql 的路由。

    // config/config.${env}.js
    exports.graphql = {
      router: '/graphql',
      graphiql: true,
      onPreGraphQL: async (ctx) => {},
      onPreGraphiQL: async (ctx) => {},
    };

    使用方式

    请参考测试用例的目录结构, 以及 dataloader 的使用。

    参考项目

    协议

    MIT

    Install

    npm i egg-graphql-apollo

    DownloadsWeekly Downloads

    1

    Version

    0.1.6

    License

    MIT

    Unpacked Size

    8.89 kB

    Total Files

    11

    Last publish

    Collaborators

    • liumingyi