2013-05-27 1 views
1

В настоящее время я пытаюсь создать веб-сервис REST с использованием Java/EE (5), который полностью инкапсулирует ответы HTTP, поэтому каждый запрос должен вернуть код ответа 200 (OK) и должен выглядеть следующим образом:Пытается создать REST-сервис с инкапсулированными кодами ответов HTTP

{ 
    "msg" : { // imagine some datastructure here }, 
    "error" : { 
     "code" : 200 // http response code 
     "status" : "OK" // some string defining this 
    } 
} 

Моя Предпочтительнее рамки JAX-RS (мы планируем перейти на EE6 в ближайшее время, поэтому миграция является одним из вопросов, в то время как развивается это), но может JAX-RS это сделать?

+0

Это не ОТДЫХ. Почему вы хотите снова использовать SOAP? –

+0

Я смущен, @ LutzHorn. Где вы здесь видите SOAP? – Rob

+2

Не вставляйте код ошибки в результат, а отправляйте его как HTTP-заголовок. – fiskeben

ответ

2

Самый простой способ всегда возвращают 200 OK и Content-Type: application/json с JAX-RS:

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.Response; 

@Path("/not-rest") 
@Produces("application/json") 
public class NotRestBean { 

    @GET 
    public Response getSoapStyle() { 
     String json = "{}"; // build your response here 
     return Response.ok(json).build(); 
    } 
} 

Опять же, я не рекомендую делать это. Центральная часть REST - это унифицированный интерфейс, который включает в себя правильные коды ответов.

Смежные вопросы