我一直在尝试Retrofit,我真的很简单。改装:只更新特定字段
但是我有一个otimization关注。 我为我的后端使用Parse,它有一个纯粹的Rest API。
当我想要更新一个对象时,我使用了一个PUT HTTP Request
,并只传递了我想要更新的特定值body
。
但是,使用Retrofit时,我总是必须在使用@Body
批注传递它时序列化整个对象。如果我有一个非常大的对象,这是非常不利的。
我看到的所有解决方案都是使用注解来通知转换器哪些字段被暴露。但是,这会影响所有请求,并且如果我具有更新不同字段的更新方法,则不起作用。
我想我有两个选择:
- 传递我想更新为
Form
参数和使用 的@URLEncoded
标注的参数。然而,这不是真的RESTful
,我不认为Parse
支持它。 - 创建注释以通知哪些字段应添加到
JSON
的body
中。为此,如何访问Converter中的方法注释,以选择要序列化的字段?
你可以看看这个问题:http://stackoverflow.com/questions/18491733/gson-serialize-field-only -if-not-null-or-not-empty和相应的答案。这会有帮助吗? –
类别。但是在Converter里面,我现在该怎么做,现在用户想要序列化哪些字段呢?我可以在特定的服务方法中创建注释,但在GsonConverter内部,我怎样才能访问这个注解? – ffleandro