2015-01-12 3 views
4

Java/Jersey/Jackson 스택이있는 REST API를 작성 중입니다. 모든 JSON 파싱 및 생성은 Jackson과 함께 수행됩니다. REST 계층은 Jersey에서 처리합니다. Grizzly 컨테이너에 포함됩니다.java/jersey/jackson - 입력 유효성 검사 JSON

내 API에서는 JSON을 끝점에서 사용합니다. 예를 들어 :

@POST 
public Response post(final SomeObject input) { 
    return ...; 
} 

input을 확인하는 가장 좋은 방법은 무엇입니까? 내가 확인하고 싶은 어떤 일이 있습니다

  • input이 null이어야는
  • input
  • 특정 필드
  • input
  • 특정 필드 정규 표현식 (텍스트 필드)
  • 을 따라야합니다 null가 아닌 있어야합니다 input
  • 의 특정 필드 (숫자 필드)
  • ... 범위에 있어야

가능하면 가능한 한 코드를 변경하고 싶습니다. 즉, 클래스, 메서드 및 매개 변수에 주석을 추가하여 유효성 검사를 통합하는 것을 선호합니다.

+1

이를 보라 제공 : https://jersey.java.net/documentation/ latest/bean-validation.html – Baderous

+0

Json 유효성 검사기가 도움이 될 수 있습니다. http://stackoverflow.com/questions/2499126/json-schema-validation-using-java를 참조하십시오. – Rahul

답변

4

JSON Schema을 사용할 수 있습니다.

잭슨을 사용하기 때문에 my library을 정확하게 사용할 수 있습니다.

그러나 이것은 직렬화 된 POJO 대신 JSON (JsonNode)을 받고 POJO로만 ​​직렬화 할 수 있도록 논리를 변경해야한다는 것을 의미합니다.