我是ETL的初学者,我试图从现有数据(例如:类似100k数据)中停止客户端API localhost:8080/student
(POST)
在请求错误的情况下,API localhost:8080/student
(POST)返回这样的响应
{
"errors": [
{
"code": "student id.not.found",
"message": "student with branch id does not exist"
}
],
"statusCode": "BAD_REQUEST"
}
OR this in case of authorization fails
{
"error": "invalid_token",
"error_description": "Cannot convert access token to JSON"
}
处理此问题的最佳方法是什么?
我想将失败的请求保存到某处,然后重试。
如果出现直接错误(例如500等),我该如何处理?
我当前的方法是将JSON响应存储在某个变量中,并搜索响应中是否包含带有错误或错误代码的名称,而我将其视为失败 还是应该只检查返回的HTTP响应状态代码
电流像这样
休息响应是这样的
这就是我试图获取错误字段的方法,但是每次都会变为空
答案 0 :(得分:0)
我不确定这是否是最佳方法,但能够解决问题。我没有使用pentaho函数,而是使用了对我有用的javascript。
我已在response_status
示例值400
中设置了响应的http状态
并且result
具有完整的响应api返回示例{
"error": "invalid_token",
"error_description": "Cannot convert access token to JSON"
}
我使用过的脚本样本
var sucess_status;
var error_description;
var errors_detail;
var http_status = JSON.stringify(response_status);
if( http_status.match('/^2/g')){
sucess_status ="true";
}else{
sucess_status ="false";
var obj = JSON.parse(response);
errors_detail= JSON.stringify(obj); // case of 401
}
进一步阅读复杂的json可以阅读任何可以增强脚本的复杂的json 请参阅Need to parse complex Json
答案 1 :(得分:0)