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

Package Sidebar

Install

npm i egg-graphql-apollo

Weekly Downloads

0

Version

0.1.6

License

MIT

Unpacked Size

8.89 kB

Total Files

11

Last publish

Collaborators

  • liumingyi