不使用关系。作为请求和响应的RelationshipGetRequest。是否有任何方法将请求/响应转换为POJO?
我已经看到了这个解决方案,但它比我正在寻找的更复杂:将协议缓冲区转换为POJO
我正在使用Retrofit和Google Protocol Buffers。
What I have:
public interface RelationshipService {
@POST("/relation/get")
Observable<Relationships.RelationshipGetResponse> getRelationship(
@Body() Relationship.RelationshipGetRequest request
);
}
我想用的:
public interface RelationshipService {
@POST("/relation/get")
Observable<Relationship> getRelationship(
@Body() Relationship request
);
}
关系:
public class Relationship {
private long mRelationshipId;
private String mName;
// etc. about 10 other properties..
}
我的请求最终是这样的,请求必须在这里构建…
mClient.createService(RelationshipService.class).getRelationship(Relationships.RelationshipGetRequest.newBuilder().setRelationshipId(-1).build()).subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Relationships.RelationshipGetResponse>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Timber.e(e, "Error! " + e.getMessage());
}
@Override
public void onNext(Relationships.RelationshipGetResponse relationship) {
String output = relationsip.getRelationship().getName();
Timber.i(output);
}
});
您必须编写自己的适配器来将protobuff消息转换为POJO实例。否则,您可以尝试使用现有pojo作为模式的原型。检查:https://github.com/anirbanroy88/services/tree/master/protostuff