如何从 iOS 中的 hasura graphql 查询中获取错误响应
Posted
技术标签:
【中文标题】如何从 iOS 中的 hasura graphql 查询中获取错误响应【英文标题】:How to get error response from hasura graphql query in iOS 【发布时间】:2021-10-02 07:06:41 【问题描述】:我正在使用 hasura 进行查询。
ApolloNetworkClass.shared.apolloClient.fetch(query: GetCollectionsQuery(user_id: "120"), cachePolicy: .fetchIgnoringCacheData) (result) in
switch result
case .success(let result) :
if let array = result.data?.nftCollections.map($0.fragments.nftCollectionsModel)
self.collectionList = array
self.tblCollections.reloadData()
else if let error = result.errors
if let errorResponse = error.first
print(errorResponse)
else
print("[Error] Got errors when call request: \(error)")
break
case .failure(let error) :
Utility.ShowToast(message: error.localizedDescription, position: .top)
print(error)
break
这是我的查询,我只想获取错误代码或响应代码(如 401)。
我已经尝试了所有方法,但我无法获得解决方案。
提前致谢。
【问题讨论】:
【参考方案1】:GraphQL 错误响应仍将返回状态代码 200,这与 REST API 模式不同,如果出现问题,您将收到 4xx。
为了解析错误消息,您需要查看响应对象,其格式为:
"data": ....,
"errors": []
You can then expand on the errors object which will contain information like the error code, location of the error via some path etc.
【讨论】:
以上是关于如何从 iOS 中的 hasura graphql 查询中获取错误响应的主要内容,如果未能解决你的问题,请参考以下文章
使用 Hasura graphql 模式时如何自定义 graphql-code-generator 生成的字段的类型