and*_*111 5 graphql graphql-js express-graphql
目前,在 GraphQL JS 实现中,没有从突变返回描述性成功消息的标准方法,例如“用户创建成功”等。我的问题有两部分:
我的想法是从 API 返回成功消息是有益的。这样,消息可以在不同客户端(例如网络和移动设备)上保持一致。客户端不必为每个 API 调用实现自定义消息。但我不确定最佳实践是什么。从突变调用返回描述性成功消息是否有任何缺点(除了增加响应大小之外)?
如果我决定这样做,graphql-js 中是否有标准方法可以做到这一点?
例如,是否可以取回如下内容:
{
data: {
mutationName: {var1:"val1"}
},
messages: {
mutationName:"User created successfully"
}
}
Run Code Online (Sandbox Code Playgroud)
现在有相当多的客户端代码取决于返回结果的形状。如果您要付出相当大的努力来实现您的想法,您将需要分叉这些内容,以便从您的更改中受益。
同时,您想要实现的目标(如果我理解正确的话)在当前规范内完全可以实现。
为什么不这样做(我们将使突变成为用户创建):
schema {
mutation: Mutation
query: Query
}
type Mutation {
newUser(params: NewUserInput): NewUserResult
}
input NewUserInput {
# ...
}
type NewUserResult {
successMessage(languageCode: LanguageCode): String
newUser: User
}
# need to define Query, NewUserInput, User
Run Code Online (Sandbox Code Playgroud)
如果您的系统需要,这允许您返回成功消息,而无需更改 GraphQL 语言的规范。
(来源:graphql-js 中的 graphql 错误和状态消息)
至少在 中express-graphql,有一种方法可以传递extensions给它: https: //github.com/graphql/express-graphql/blob/master/src/index.js#L89
| 归档时间: |
|
| 查看次数: |
3632 次 |
| 最近记录: |