2014-09-09 4 views
0

GET 요청 URL은 entities\{id}입니다. 여기서 RestController는 Long 형식의 ID를 예상합니다.
테스트 사례에 따르면 사용자가 유효하지 않은 id을 전달하면 컨트롤러에서 HTTP-400 Bad Request 오류를 반환해야한다고합니다. 예 : /entities/21.0, /entities/xx
컨트롤러 자체를 치기 전에 유니폼을 HTTP-404 오류가 발생합니다.REST : GET 요청에 대한 400 오류 처리

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

메서드 자체는 주석을 달지 않았습니까? – Fildor

+0

방금 ​​ID를 읽는 방법을 보여주기 위해 메소드 서명을 넣었습니다. 지금 업데이트 중입니다. –

+0

전체 수업 내용과 함께 컨텍스트 구성을 제공해 주실 수 있습니까? 그것이 유일한 도달 지점입니까? 내가 말하는 다른 휴식 서비스를받을 수 있니? – tmarwen

답변

1

주의해야 : 이것은 좋은 해결책이 아니다, 그러나 그것은 작동하는 솔루션입니다

RestController은 다음과 같습니다.

첫 번째 : @PathVariable은 @PathParam이 아닌 올바른 주석이라고 생각합니다 (3.2 스프링 참조를 읽었습니다).

  1. 변경 방법에 문자열
  2. 에 id 매개 변수의 유형
  3. 은 Long.parseLong (ID)를 수행하고, NumberFormatException이를 잡을 수있어.
  4. NumberFormatException에 대한 원하는 오류 표시를 리턴하십시오.
+0

감사합니다. 나는 똑같이했다. 클리너 솔루션을 찾으십시오. 컨트롤러 클래스의 try/catch는 나에게 좋지 않습니다. –

+0

'@ PathVariable' 제안을위한 Upvote. –

관련 문제