dongfg' blog

无数渺小的思考填满了人的一生

0%

接上文 starter及工程化模块化及理解

命名问题

schema可以按模块划分写在不同文件中,但是解析时其实是合并解析的,type、query及mutation的各自命名必须唯一,多人协作时需要注意。

公用type问题

由第一个问题引出,不同模块可能有公用的type,放在哪个schema中都不合适,可以将所有type定义放到同一个文件中。

泛型结构

graphql 不支持泛型,目前没有好的解决方法,暂时使用以下数据结构代替:

1
2
3
4
5
6
7
8
9
class Example {
...
}
class ExampleWrapper {
int code;
String msg;
Example data;
}

1
2
3
4
5
6
7
8
9
type Example {
...
}

type ExampleWrapper {
code: Int
msg: String
data: Example
}

项目地址

Github: dongfg/api

依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 提供servlet入口 -->
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>LATEST</version>
</dependency>
<!-- graphiql 提供查询界面-->
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>LATEST</version>
</dependency>
<!-- 解析schema文件,resolver等 -->
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>LATEST</version>
</dependency>
阅读全文 »