Graphql始终返回:
{
"data": {},
"errors": []
}
是否还可以返回自定义消息?
{
"data": {},
"errors": [],
"messages": [] // or with another key
}
如果没有,如果我们将其添加为自定义功能,像GraphiQL或其他库之类的工具会失败吗?
答案 0 :(得分:0)
spec指出GraphQL响应应该是带有data
键的映射,如果遇到任何错误,还应带有error
键。但是,它也提供了可选的第三个键-extensions
:
响应图可能还包含带有键扩展名的条目。如果设置了该条目,则其值必须具有一个映射。此项保留给实施者以扩展协议,但他们认为合适,因此对其内容没有任何其他限制。
为确保将来对协议进行的更改不会破坏现有的服务器和客户端,顶级响应图不得包含上述三个条目以外的任何条目。
如果您要在响应中包括任何其他数据,则建议将其包括在extensions
下。您可以通过许多实现了缓存控制,跟踪和成本分析等功能的库来完成此任务。如果您在后端使用express-graphql
或apollo-server
,则这两个库均允许您专门配置端点使用的扩展名。