我有点想得到一些验证,然后再发送PR来获取文档。我有以下操作界面:
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根本没有谈论这个问题,所以我不知道它是否只是丢失了,或者是否发现了错误或什么。感谢您的任何反馈。
我遇到了同样的问题,我想文档中根本没有@Body。如果您可以提出一个PR进行澄清,那就太好了。