我有点想在我发公关文件之前得到一些验证。我有以下操作界面:
public interface StatusOperations {
@Get
HttpResponse<List<StatusResponse>> findAll();
@Post
Single<StatusResponse> save(StatusRequest statusRequest);
}
然后是声明性客户端接口:
@Client("/api/statuses")
public interface StatusClient extends StatusOperations {
@Override
@Get
HttpResponse<List<StatusResponse>> findAll();
@Override
@Post
Single<StatusResponse> save(StatusRequest statusRequest);
}
StatusRequest
:
@Introspected
public class StatusRequest {
private UUID id;
@NotNull
private String message;
// getter/setter stuff below
}
当我使用客户端访问API时:
StatusResponse response = client.save(new StatusRequest("Hello")).blockingGet();
我期待着这个机构发布:
{"message": "Hello"}
但实际发布的是:
{"statusRequest": { "message": "Hello"}}
失败了。但是,如果我像这样修改操作界面:
@Post
Single<StatusResponse> save(@Body StatusRequest statusRequest);
邮政机构是我所期望的,一切正常。这个
documentation
根本就不说这个,所以我不知道它是不是丢失了,或者我发现了一个bug之类的。谢谢你的反馈。