【问题标题】:Is it possible to return a custom message in GraphQL?是否可以在 GraphQL 中返回自定义消息?
【发布时间】:2019-03-25 09:48:30
【问题描述】:

Graphql 总是返回:

{
    "data": {},
    "errors": []
}

是否也可以返回自定义消息?

{
    "data": {},
    "errors": [],
    "messages": [] // or with another key
}

如果没有,如果我们将其添加为自定义功能,GraphiQL 或其他库之类的工具会失败吗?

【问题讨论】:

    标签: graphql


    【解决方案1】:

    spec 声明 GraphQL 响应应该是一个带有 data 键的映射,如果遇到任何错误,也应该是一个 error 键。但是,它还提供了一个可选的第三个密钥——extensions

    响应映射还可能包含带有键扩展名的条目。此条目(如果设置)必须有一个映射作为其值。此条目是为实现者保留的,以在他们认为合适的情况下扩展协议,因此对其内容没有额外的限制。

    为确保未来对协议的更改不会破坏现有服务器和客户端,顶级响应映射不得包含上述三个以外的任何条目。

    如果您要在响应中包含任何其他数据,因此建议将其包含在extensions 下。您可以通过许多实现缓存控制、跟踪和成本分析等功能的库来实现这一点。如果您在后端使用 express-graphqlapollo-server,这两个库都允许您专门配置端点使用的扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2020-08-11
      • 1970-01-01
      • 2017-07-01
      • 2016-12-17
      相关资源
      最近更新 更多