Я определил свой метод REST, чтобы вернуть тип данных String в ответ на HTTP-запрос. Это он:Почему нужно возвращать объект Response вместо объекта String в HTTP-запрос в java?
@Path("https://stackoverflow.com/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("https://stackoverflow.com/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' (сам по себе) не делает. –