如何解决是否有更好的方法在带有 apollo-link-error 的 apollo-client 中转发自定义错误?
目标
使用 Apollo,我想拦截所有 GraphQL 服务器响应错误;对每个错误做一些事情(例如通过集中的错误服务运行每个错误);然后将自定义错误转发给发出原始服务器请求的功能(实际上,我只是希望能够将一些元数据传达给该功能 - 它不一定是自定义 Error
实例) .
问题
Apollo 似乎不支持转发自定义错误。
尝试
我设置了一个 error-link 以:
- 拦截每个 GraphQL 错误
- 通过一些集中的错误服务运行它
- 将错误转换为带有额外元数据的自定义错误对象
- 将自定义错误对象序列化为 JSON 字符串
- 覆盖带有序列化错误的
message
的第一个元素的response.errors
属性
然后,我可以在下游需要时将 JSON 解析回自定义错误实例。
这适用于 Apollo 钩子,但对于您从 apolloClient
— useApolloClient()
和 {{1} 获得的 apolloClient.mutate()
实例上的方法会中断}.具体来说,apolloClient.query()
方法会使用原始服务器错误消息覆盖我的自定义错误字符串。
您可以查看 this issue 以了解有关实施的更多详细信息。
问题
有没有更好的办法?无法想象这不是一个常见的用例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。