REST:处理GET请求的400错误

时间:2014-09-09 16:23:14

标签: java rest spring-mvc jersey

我有一个GET请求网址entities\{id}。这里RestController期望id为Long格式。
测试用例表示如果用户传递了无效的id,控制器应该返回HTTP-400 Bad Request错误。 例如: /entities/21.0/entities/xx
但是在击中控制器本身之前,球衣会引发HTTP-404错误。

RestController看起来像这样:

@GET
@Path("/{id}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response getEntityById(@PathParam("id") Long id){}

1 个答案:

答案 0 :(得分:1)

警告:这不是一个很好的解决方案,但它是一个有效的解决方案。

首先:我相信@PathVariable是正确的注释,而不是@PathParam(我正在阅读3.2春季参考文献)。

  1. 将id参数的类型更改为String
  2. 在方法中执行Long.parseLong(id)并捕获NumberFormatException。
  3. 返回NumberFormatException的所需错误指示。