我创建了一个返回项目列表的端点。当列表为空时,我希望在 JSON 中看到一个空列表,但列表字段被省略了。这不是开发服务器上发生的情况。
Ex:
@ApiMethod(name = "udinic", path = "udinic")
public List<UdinicResponse> getUdinics() {
List<UdinicResponse> list = new ArrayList<>();
UdinicResponse res = new UdinicResponse();
res.bla = "sds";
list.add(res);
return list;
}
static class UdinicResponse {
String bla;
public String getBla() {
return bla;
}
public void setBla(String bla) {
this.bla = bla;
}
}
当我在开发服务器上运行它时,这就是我得到的响应:
{
items: [ ]
}
当它在部署的服务器上时,这就是我得到的:
{
kind: "udinicEndpoint#resourcesItem",
etag: ""3Ms41gaYW9qnDr8JAXr8FIDhu9jVetg""
}
有什么想法如何才能获得一致的行为吗?我更喜欢得到一个空列表而不是省略该字段。
预期的行为是空列表将被省略,根据文档 [1]:
返回的空列表将作为空值到达客户端。
记得检查一下。
所以实际问题是开发服务器与生产服务器不一致。作为开发服务器上一致性的解决方法,您可以添加对空列表的检查并返回 null。
return list.isEmpty() ? null : list;
[1] https://cloud.google.com/solutions/mobile/google-cloud-endpoints-for-android/ https://cloud.google.com/solutions/mobile/google-cloud-endpoints-for-android/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)