REST保证:反序列化和继承,以适应API端点返回的各种响应

问题描述 投票:0回答:1

我有时遇到API的响应是

{
    "SuccessCode": "OPERATION_SUCCESS",
    "Message": "Operation completed successfully"
}

有时,响应是

{
    "FaultId": "User already exists",
    "fault": "FAULT_USER_ALREADY_EXISTS"
}

我如何以通用的方式反序列化以适应各种不同的响应?

java rest-assured qa
1个回答
0
投票
您可以创建两个不同的对象,分别表示错误和成功的响应:

public class Successful { private String SuccessCode; // or successCode as usually done in java + annotation to map the json field private String Message; ... getters, setters ... } public class Faulty { private String FaultId; private String fault; ... getters, setters ... }

然后,假设成功的响应具有http状态代码200,否则是错误的,您可以:

Response resp = when().get(<SOME_URL_GOES_HERE); if(resp.getStatusCode () == 200) { Successful respSuccess = resp.body().as(Successful.class); } else { Faulty faulty = resp.body().as(Faulty.class); }

© www.soinside.com 2019 - 2024. All rights reserved.