REST GET api - 未找到资源时返回的内容

时间:2014-10-15 19:54:38

标签: api rest jersey

我正在使用球衣来创造休息api。我有GET api,它使用JaXB返回对象实例的xml或json表示。
一切都很好,只要我能根据id得到这个实例并返回它。但是当我找不到实例时,我应该返回什么。我知道必须回复404回复。但我的方法已经返回给定的类型。那么如何设置404状态是响应?

以下是我的方法的简化版本

@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public GameDAO getGameState(@PathParam("gameId") String gameId)
{
 //code to get game instance based on gameId
    if(game != null)
    {
        GameDAO d = new GameDAO(game);
        return d; //gets auto converted to xml or json
    }

    return null; //how to return not found response ?
}

1 个答案:

答案 0 :(得分:1)

404响应是你想要的,我认为最好的方法就是抛出“未找到”的WebApplicationException。这是一个例子:

throw new WebApplicationException(Response.Status.NOT_FOUND);

有很多方法可以自定义错误处理;您可以在Jersey文档中找到更多详细信息:https://jersey.java.net/documentation/latest/representations.html