首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >graphql-js中的graphql错误和状态消息

graphql-js中的graphql错误和状态消息
EN

Stack Overflow用户
提问于 2017-01-18 21:18:21
回答 2查看 1.5K关注 0票数 0

我在概念上坚持使用graphsql (使用graphql-js)。

假设API用户发送了一个查询,数据库服务器已关闭,我想将此信息作为

代码语言:javascript
复制
data { errors }

列表。

我如何访问数据中的errors对象并将我自己的错误消息(例如关于数据库服务器故障)推送到那里?

我想知道的下一件事是如何将添加消息对象添加到数据对象中。

假设用户通过id请求了一个数据库项(例如,一个特定的帐户),但该项并不存在。现在,我想返回如下内容:

代码语言:javascript
复制
{
    data: {
        messages: [{status: "failure", message: "This account does not exist"}]
    }
}

我如何做到这一点,我是否必须将消息也定义为一个类型?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-19 16:14:45

errorsmessages字段出现在GraphQL响应的data属性中的唯一方法是将它们包含在GraphQL模式的类型系统中,并显式地向客户端请求它们。但是,如果您希望在每次请求时都返回自定义errorsmessages字段,而不管客户端是否请求它们,则可以在data属性之外包含它们。

例如,如果您使用的是express-graphql,它提供了一个扩展选项,允许您将任何多余的信息附加到每个响应有效负载(https://github.com/graphql/express-graphql/blob/c92cfad64f4b18abce3cdeca36bb8553dd020773/src/index.js#L95)

如果您没有使用express-graphql,您可以将其视为如何在每个响应中包含您自己的元数据的示例。express-graphql是一个非常简单的包装器,您可以随时将自己的数据写入响应。例如,这是express-graphql附加errors (https://github.com/graphql/express-graphql/blob/c92cfad64f4b18abce3cdeca36bb8553dd020773/src/index.js#L309)的行。您可以执行相同的操作,但使用不同的密钥。

祝你好运!

票数 0
EN

Stack Overflow用户

发布于 2017-01-19 08:25:52

errorsmessages作为查询结果的一部分的一种方法是将它们作为字段包含到GraphQL对象类型中。

例如,您有一个GraphQL对象类型Item,其中包含字段id、名称、错误和消息。当数据库服务器关闭时,只填充item实例的errors字段。当具有给定ID的项目不可用时,将填充messages字段。当项目可用时,设置名称字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41720509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档