建议egg-graphql提供分模块的功能
- Dominant language
- TypeScript
- Stars
- 19k
- Forks
- 1.8k
- PR merge metrics
- No merged PRs in 30d
Description
配置跟以前不变,使用方法就是在app/graphql 增加了一层用来分区各个模块,比如:
```javascript
// 配置
exports.graphql = {
router: '/graphql',
// 是否加载到 app 上,默认开启
app: true,
// 是否加载到 agent 上,默认关闭
agent: false,
// 是否加载开发者工具 graphiql, 默认开启。路由同 router 字段。使用浏览器打开该可见。
graphiql: true,
// graphQL 路由前的拦截器
onPreGraphQL: function* (ctx) {},
// 开发工具 graphiQL 路由前的拦截器,建议用于做权限操作(如只提供开发者使用)
onPreGraphiQL: function* (ctx) {},
};
```
目录结构如下
```
.
├── app
│ ├── graphql
| | ├── moduleA
| | └── moduleB
| | ├── common
| | | └── directive.js // 自定义directive
│ │ ├── project
│ │ │ └── schema.graphql
│ │ └── user // 一个graphql模型
│ │ ├── connector.js
│ │ ├── resolver.js
│ │ └── schema.graphql
│ ├── model
│ │ └── user.js
│ ├── public
│ └── router.js
```
然后访问的时候,就是`host/graphql/moduleA`这样来访问,
看apolloserver文档没发现有提供什么方法,目前实现思路大概就是实例化多个apolloserver传入不同的path,挂载不同的schema
Contributor guide
Assessment
This issue has not been assessed yet.