+-
java – 为什么使用REST @Produces注释
所以我明白你是在指定类型,但为什么呢?在什么条件下会很重要.例如,如果我有以下方法,并且我注释掉@Produces注释,它仍然返回 JSON.

@GET
@Path("/json")
//@Produces({MediaType.APPLICATION_JSON})
public String getJson(){
    return toJson(getResults());
}

API文档说’如果没有指定,那么容器将假定可以生成任何类型.’那么为什么我不想让容器承担这个呢?

最佳答案
我认为这取决于你的JAX-RS实现,但这里是泽西岛对他们的@Produces注释的解释: https://jersey.java.net/documentation/latest/jaxrs-resources.html#d0e1809

基本上,由客户端决定服务器应该回吐的内容类型.
如果客户端支持多种内容类型,则有时可以为给定方法指定要返回的内容类型的优先级:

@Produces({"application/xml; qs=0.9", "application/json"})

In the above sample, if client accepts both “application/xml” and “application/json” (equally), then a server always sends “application/json”, since “application/xml” has a lower quality factor.

点击查看更多相关文章

转载注明原文:java – 为什么使用REST @Produces注释 - 乐贴网