GithubHelp home page GithubHelp logo

egg-graphql-apollo's Introduction

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

config.middleware = [ 'graphql' ];

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

使用方式

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

参考项目

协议

MIT

egg-graphql-apollo's People

Contributors

minjieliu avatar double2kill avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.