【发布时间】:2016-07-28 15:31:02
【问题描述】:
我定义了我的 REST 方法来返回一个字符串数据类型作为对 http 请求的响应。就是这样:
@Path("/users/{name}/")
@GET
@Produces("application/json")
public String getAllUserMemberships(@PathParam("name") String name) throws Exception{
String doc = "{\"name\":\""+name+"\",\"message\":\"Logged in\"}";
return doc;
}
它工作正常,但有人告诉我宁愿返回javax.ws.rs.core.Response 对象,如下面的示例代码所示。这也很好,他说这是响应 HTTP 请求的最佳方式,但他不知道为什么。
@Path("/users/{name}/")
@GET
@Produces("application/json")
public Response getAllUserMemberships(@PathParam("name") String name) throws Exception{
String doc = "{\"name\":\""+name+"\",\"message\":\"Logged in\"}";
return Response.ok(doc, MediaType.APPLICATION_JSON).build();
}
我的问题是:当您可以只返回一个字符串时,是否有必要向 HTTP 请求返回一个响应对象。如果有必要,请告诉我为什么,因为对于 HTTP 请求的目的,哪个是正确的,我进退两难。 我还担心 Response 对象可能会给我带来一些我可能无法处理的问题。
【问题讨论】:
-
这是为了方便。您可能想要设置一堆标题。您可能想要控制状态代码。
Response让你做到这一点。String(单独)没有。
标签: java rest jersey jetty embedded-jetty