当您在“查询和变异”中具有相同的概念时,是否有命名约定来避免GraphQL名称冲突?

我有以下架构:

type ProviderDetails{ ... }

type CustomerDetails{ ... }

type Provider{
 details: ProviderDetails!
}

type Customer{
 details: CustomerDetails!
}

input CustomerModReq{...}

type CustomerModResp{...}

type CustomerM{
 modifyDetails(update:CustomerModReq):CustomerModResp!
}

input ProviderModReq{...}
type ProviderModResp{...}
type ProviderM{
 modifyDetails(update:ProviderModReq):ProviderModResp!
}

type Query{
 provider(id: String): Provider!
 customer(id:String): Customer!
}

type Mutation{
 provider(id:String): ProviderM!
 customer(id:String): CustomerM!
}

我只是不确定后缀M是否真的惯用。解决该命名问题的惯用方式是什么?

duoduoyishanjiang 回答:当您在“查询和变异”中具有相同的概念时,是否有命名约定来避免GraphQL名称冲突?

虽然尝试以这种方式命名您的变异名称不会违反规范,但确实与已建立的约定时期背道而驰,因此您不会在命名多余类型的过程中找到惯例常规方法是用它们代表的任何操作来命名您的Mutation字段:

type Mutation {
  modifyCustomer
  modifyProvider
}

当模式可能包含数十个或数百个字段时,通常会看到这样的命名:

type Mutation {
  customerAdd
  customerModify
  providerAdd
  providerModify
}

使用单独的类型命名突变通常是不可取的,因为它不必要地使您的后端代码和客户端代码都复杂化。例如,作为客户,如果我想批量处理变异调用并利用根级别字段是按顺序解析的事实,则我不仅要使用别名,还要知道必须对根字段进行别名别名达到预期的效果。

本文链接:https://www.f2er.com/2697358.html

大家都在问