是否可以在GraphQL中返回自定义消息?

时间:2019-03-24 22:08:58

标签: graphql

Graphql始终返回:

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

  

响应图可能还包含带有键扩展名的条目。如果设置了该条目,则其值必须具有一个映射。此项保留给实施者以扩展协议,但他们认为合适,因此对其内容没有任何其他限制。

     

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

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

相关问题