我正在使用 Apollo Graphql 创建一个 React 应用程序,但我在使用 Apollo Link Rest 时遇到了一些问题。问题是在我的应用程序中间我必须发出一个 REST 请求,但是这个请求可能成功并返回状态码 = 200,也可能失败,返回状态码 = 400。
如果出现 400 错误,我的应用程序必须向最终用户显示在此请求正文中返回的错误消息。但是,当发生错误时,Apollo Link Rest 只会引发异常,但不会将响应正文返回给我。
当 Apollo Link Rest 出现错误时,我有办法获取响应正文吗?我以为我可以从result
变量中得到它,但是由于 Apollo 抛出了异常,所以这个变量永远不会改变。
这是我的代码:
const result = await context.client.query<MyQuery>({
query: MyQuery,
variables: {
input: {
companyId: variables.companyId,
},
},
});
query MyQuery($input: MyQueryInput!) {
myQuery(input: $input) @rest(
type: "QueryResponse",
method: "POST"
path: "v1/my-query"
) {
id
minimumPreparationTime
maximumPreparationTime
extras {
id
optional
key
}
warning
error {
id
type
message
}
}
}