我是jersey rest服务的新手,我想在此示例中了解将@Consumes
注释添加到delete方法的实用程序,在这种情况下,这是运行良好的代码(在视频中),@Consumes
注释在这里是可选的吗?提前致谢
@path("activities")
public class ActivityResource {
@DELETE
@Path("{activityId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public Response delete(@PathParam("activityId")String activityId) {
activityRepository.delete(activityId);
return Response.ok().build() ;
}
}
最佳答案
@Consumes
注释在这里是可选的吗?
是的,我什至会说不需要它,因为您只有一个参数,它是一个PathParam
,这意味着它将从路径中提取。
批注@Consumes
用于指示JAX-RS实现如何动态解析/反序列化您的请求主体,以便将其作为更方便的类型的参数。
例如:
@POST
@Consumes("application/xml")
public void registerUser(User user) {
...
}
在此示例中,我们指示请求的主体为
application/xml
类型,然后JAX-RS实现将主体的内容解析为XML,以最终获得User
的实例。注意:使用的HTTP方法对是否需要
@Consumes
无效,而仅需要解析正文。