如何处理飞镖中的 json API 响应错误?
How to handle json API response errors in dart?
我试图创建一个库来解析来自 API 的几个 JSON HTTP 响应,所以我提出了请求并创建了一个模型 class 并解析了 JSON 响应,但有时(也许如果用户令牌过期),错误 401 的异常是 returned,并且由于需要错误 ID 来处理不同的错误,我正在考虑创建另一个模型 class对于错误并将其 return 发送给用户,但这意味着我必须 return 带有所需数据的 class 或带有错误的 class不可能同时处理相同功能的信息。现在,如果我做了一个 try-catch 子句,它不会 return 如果发生异常 returning null(我不想要)。
正确 JSON 响应如下所示:
{
"result": "ok",
"token": {
"session": "string",
"refresh": "string"
}
}
和 错误 JSON 响应如下所示:
{
"result": "error",
"errors": [
{
"id": "string",
"status": 0,
"title": "string",
"detail": "string"
}
]
}
现在,我当然可以做一个 if else 子句来检查响应代码并完成剩下的工作,但是我还是必须 return 错误 class 以及其中的所有细节.我该怎么做?
注意:我使用的是 mangadex api
我会创建一个 returns Future<Token>
的函数
如果结果没问题,解析Token
和return。
如果这是一个错误,抛出一个包含所有细节的自定义 Error
实现。
然后为您的 RPC 创建一个惯用的 Dart API。
我试图创建一个库来解析来自 API 的几个 JSON HTTP 响应,所以我提出了请求并创建了一个模型 class 并解析了 JSON 响应,但有时(也许如果用户令牌过期),错误 401 的异常是 returned,并且由于需要错误 ID 来处理不同的错误,我正在考虑创建另一个模型 class对于错误并将其 return 发送给用户,但这意味着我必须 return 带有所需数据的 class 或带有错误的 class不可能同时处理相同功能的信息。现在,如果我做了一个 try-catch 子句,它不会 return 如果发生异常 returning null(我不想要)。
正确 JSON 响应如下所示:
{
"result": "ok",
"token": {
"session": "string",
"refresh": "string"
}
}
和 错误 JSON 响应如下所示:
{
"result": "error",
"errors": [
{
"id": "string",
"status": 0,
"title": "string",
"detail": "string"
}
]
}
现在,我当然可以做一个 if else 子句来检查响应代码并完成剩下的工作,但是我还是必须 return 错误 class 以及其中的所有细节.我该怎么做?
注意:我使用的是 mangadex api
我会创建一个 returns Future<Token>
如果结果没问题,解析Token
和return。
如果这是一个错误,抛出一个包含所有细节的自定义 Error
实现。
然后为您的 RPC 创建一个惯用的 Dart API。