具有多个对象的GraphQL:我应该在一个查询中保留所有对象吗?
我正在构建一个由几个不同对象组成的SaaS B2B应用程序。示例:具有多个对象的GraphQL:我应该在一个查询中保留所有对象吗?,graphql,Graphql,我正在构建一个由几个不同对象组成的SaaS B2B应用程序。示例: 使用者 顾客 斯托克滕斯 库存水平 价目表 销售 返回 等等 我将有大约40个不同的对象,可以单独列出、创建、编辑和删除 第一次面对GraphQL概念,我是应该为所有对象构建一个大型模式,如下面的示例,还是应该让每个对象都有自己的查询 query { viewer { Users { id firstName lastName address city
- 使用者
- 顾客
- 斯托克滕斯
- 库存水平
- 价目表
- 销售
- 返回
- 等等
query {
viewer {
Users {
id
firstName
lastName
address
city
...
}
Customers {
id
firstName
lastName
address
city
rating
...
}
StockItens {
id
item_id
sales {
id
dateTime
qty
unitValue
totalValue
...
}
...
}
StockLevels {
...
}
PriceList {
...
}
Sales {
id
dateTime
qty
unitValue
totalValue
...
}
Returns {
...
}
}
}
寻找第一个选项(将所有内容都保存在一个查询中)似乎是合乎逻辑的,因为我将使用片段来访问所需的信息,但随后我将拥有一个具有大量相互关系的巨大模式
请告知该用例的最佳实践。我建议您不要编写添加所有所需数据的查询,而是使用您已经指出的片段概念 并且只获取当前页面所需的数据。因此吞吐量保持最小 e、 g。 如果您有一个更新用户的页面,您只需在专门的查询中获取该用户所需的数据。查询由片段组成。 片段与页面中使用的子组件相关,例如显示用户数据的表单。 表单的片段定义了它需要的来自用户的数据,更新页面将这些片段组合到查询中
//用户表单组件中
常量userFormFragments={
名称:“用户表单”,
文档:`fragment UserForm on User{
身份证件
名称
}`
};
//在更新用户页面中
const userQuery=`query getUserQuery($userId:ID!){
getUser(userId:$userId){
…${userFormFragment.name}
}
${userFormFragment.document}
}`
我建议您不要编写添加所有所需数据的查询,而是使用您已经指出的片段概念
并且只获取当前页面所需的数据。因此吞吐量保持最小
e、 g。
如果您有一个更新用户的页面,您只需在专门的查询中获取该用户所需的数据。查询由片段组成。
片段与页面中使用的子组件相关,例如显示用户数据的表单。
表单的片段定义了它需要的来自用户的数据,更新页面将这些片段组合到查询中
//用户表单组件中
常量userFormFragments={
名称:“用户表单”,
文档:`fragment UserForm on User{
身份证件
名称
}`
};
//在更新用户页面中
const userQuery=`query getUserQuery($userId:ID!){
getUser(userId:$userId){
…${userFormFragment.name}
}
${userFormFragment.document}
}`