微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以将 google-http-client json 请求/响应对象的字段标记为只读吗?

如何解决我可以将 google-http-client json 请求/响应对象的字段标记为只读吗?

我正在使用一个 API,该 API 在 JSON 响应中具有许多只读字段。如果您尝试使用负载中的任何这些字段更新资源,则会出现错误

public class SomeThing {
    @Key public int id;
    @Key("some_readonly_field") public String someReadOnlyField;
    @Key("writeable_field") public String writeableField;
}

// Get some resource
SomeThing model = httpResponse.parseAs(SomeThing.class);


// Some time later we want to update that resource
model.writeableField = "new value";
HttpContent content = new JsonHttpContent(new GsonFactory(),model);
HttpRequest request = requestFactory.buildrequest(HttpMethods.PUT,requestUrl,content)

request.execute(); //Server gets mad as the payload containing "some_readonly_field"

有什么方法可以将键标记为只读,以便我可以对请求内容和解析的响应使用相同的对象?

如果没有,最好的做法是什么?

我是否应该拥有具有相似但不同的字段集的单独请求和响应模型(例如 SomeThingRequest、SomeThingResponse)? 我应该序列化到地图或原始对象的副本并删除或清除某些只读字段吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。