Graphql最佳实践:一次多个查询或数组参数
我面临一个关于graphql项目的小设计决策 模式是:Graphql最佳实践:一次多个查询或数组参数,graphql,graphql-js,Graphql,Graphql Js,我面临一个关于graphql项目的小设计决策 模式是: type Foo { id: ID! } type Query { getFoo(id: ID):Foo } 检索多个Foo非常冗长: query { A : getFoo(id:1) { id } B : getFoo(id:2) { id } ... } 我正在考虑将模式更新为: type Foo { id: ID! } type Query { getFoo(input: [
type Foo {
id: ID!
}
type Query {
getFoo(id: ID):Foo
}
检索多个Foo非常冗长:
query {
A : getFoo(id:1) {
id
}
B : getFoo(id:2) {
id
}
...
}
我正在考虑将模式更新为:
type Foo {
id: ID!
}
type Query {
getFoo(input: [ID]):[Foo]
}
如果查询的对象不止一个,这将有助于减少冗余和更轻的请求,但它需要实现服务器端
两个选项中哪一个是好方法?差别很小,但由于我只是从graphql开始,我想选择最佳实践。我最终选择保留原始模式
type Foo {
id: ID!
}
type Query {
getFoo(id: ID):Foo
}
我的主要理由是:
- 语义正确
- 给客户更多的自由
- 在原子查询上更容易实现输入验证
- 每个查询都需要解决一个数据库事务。未能改变数据库数据将导致整个事务回滚。根据你的需要,你可能会想要这个