我正在尝试在dropwizard中的资源上创建一个接受表示的动作,但允许它为null,即。没有来自客户的帖子数据。
目前,从客户端,我必须发布“{}”,否则返回HTTP 415,返回不支持的媒体类型。我假设这是因为我的客户端没有发送内容类型标题为content-length = 0。
我尝试按如下方式定义资源,但是从泽西返回“生成媒体类型冲突”,因为两种方法都使用相同的路径,并且运动衫无法区分它们:
@Path("/interview")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Log
class InterviewResource {
@POST
@Timed
Interview advanceNewInterview() {
// some processing...
}
@POST
@Timed
Enquiry advanceNewInterview(@Valid AdvanceInterviewRepresentation advanceInterview) {
// some processing...
}
}
关于如何表示这一点的任何想法?
答案 0 :(得分:0)
您可以为参数使用Optional,如下所示:
@POST
@Timed
Enquiry advanceNewInterview(@Valid Optional<AdvanceInterviewRepresentation> advanceInterview)
{
if (advanceInterview.isPresent())
{
// some processing...
}
}
强调415的主要原因是没有提及Content-Type标题。在您的情况下,它应该是Content-Type:application / json