"grouping types" 在设计 GraphQL API 时是个好主意吗?
Are "grouping types" a good idea when designing GraphQL APIs?
在 GraphQL 中创建类型时,类型上的字段列表会在一段时间后变得很长。减少字段数量的一种方法是将字段的一些相关子集放入一种 "grouping" 类型中,因此 user { last_name, first_name, height, weight, friends, favorite_clubs }
将具有 user { identification, friends, favorite_clubs }
的架构 identification
当然是 { last_name, first_name, height, weight }
.
但是,我不认为这样做是个好主意。优点是 user
类型的可读性更好,但是让我担心的是:
您正在创建一个新的 GraphQLObjectType
只是为了组织,它不是我心目中图表模型中的新节点...
identification
解析器的root
参数仍然是用户对象,感觉我做错了什么...
这是整理您的 API 的好方法,还是我的担心是正确的?
因为这一切都取决于您喜欢什么,所以这个问题没有真正的答案。
我个人会简单地列出所有单独的字段。 :)
并不代表另一种方式是错误的。
总之,别想太多。
在 GraphQL 中创建类型时,类型上的字段列表会在一段时间后变得很长。减少字段数量的一种方法是将字段的一些相关子集放入一种 "grouping" 类型中,因此 user { last_name, first_name, height, weight, friends, favorite_clubs }
将具有 user { identification, friends, favorite_clubs }
的架构 identification
当然是 { last_name, first_name, height, weight }
.
但是,我不认为这样做是个好主意。优点是 user
类型的可读性更好,但是让我担心的是:
您正在创建一个新的
GraphQLObjectType
只是为了组织,它不是我心目中图表模型中的新节点...identification
解析器的root
参数仍然是用户对象,感觉我做错了什么...
这是整理您的 API 的好方法,还是我的担心是正确的?
因为这一切都取决于您喜欢什么,所以这个问题没有真正的答案。
我个人会简单地列出所有单独的字段。 :)
并不代表另一种方式是错误的。
总之,别想太多。