2012-09-17 1 views
22

RESTful API를 빌드하는 핵심 포인트 중 하나는 HATEOAS입니다. 이제 Jersey는 연결 기능을 제공합니다 (this link 참조). 그러나 나는 의 초안을 보았으며 잘 생각한 작품으로 보인다.Jersey에서 HAL을 사용하여 HATEOAS 구현

Jersey의 HAL을 쉽게 따르도록하는 몇 가지 lib가 있으면 관심이 있습니다. 초안에서 언급 한 참조가 https://github.com/HalBuilder과 같은 것을 보았습니다. 그러나 나는 직접 POJO 마셜 링을 사용하고 있으며 Halbuilder와 어떻게 혼합해야할지 모르겠다.

그래서 JAL에 HAL을 통합 한 lib가 이미 있습니까? 또는 생성 된 POJO를 수동으로 향상시키기 위해 일종의 필터를 사용할 수 있습니까? 그렇다면 다른 사람이 다음 단계로이를 수행 할 수있는 단서를 줄 수 있습니까? 이 답변은 정말하지 않더라도

+4

오 세상에, 네임 스페이스가 나쁜 것으로 생각하고 누가이 분야의 기존 작업을 부분적으로 만 인식하는 것으로 보이는 사람이 또 다른 스펙을 제시했습니다. (나 한테 신경 쓰지 마, 그건 네 잘못이 아니야 그냥 많은 사람들이 결코 배울 수없는 것을 우울하게 만든다.) –

+0

아무런 문제가 없다. 나는 휴식을 취하고 새로운 길을 찾고자합니다. – Sponiro

+0

@DonalFellows 다른 작업은 무엇입니까? Hypermedia JSON의 다른 표준을 의미합니까?아니면 Hateoas 용 XML을 사용해야 만합니까? GitHUB, Facebook, Google 등에서 RESTful API는 JSON 표준이 없기 때문에 검색 링크를 나타내는 데 약간 다른 형식을 사용하는 것으로 보입니다. HAL을 사용하거나 표준과 같은 것을 사용하면서 Halbuilder와 같은 라이브러리를 구현하는 것이 무엇이 잘못 되었습니까? –

답변

1

, 내가 코멘트 : 당신이 REST 정말 새로운면

, 당신이 잘못된 길에서 아마 시작하는 것 같아요에 넣을 수있는 충분한 문자를했다 . 귀하의 요구 사항을 정확히 모르겠지만 배우기를 원한다면 쉬운 REST 서비스로 시작하거나 .net 또는 비슷한 자바 (간단한 서블릿으로도 충분)에서 웹 API를 사용하고 http (verb, 요청 헤더 및 페이로드, 응답 메시지)가 제공하는 도구 만 사용합니다. Marc Massé의 REST API 디자인 룰북은 좋은 참고 자료입니다. POJO 또는 POCO로 자신 만의 통신 프로토콜을 만들고 REST를 할 수있는 방법과 작동 방식을 이해하면 프레임 워크를 사용하여 작업을 쉽게 수행 할 수 있습니다.

당신이 프레임 워크로 시작하는 경우 개념의 본질을 놓칠 수 있습니다 ...

나는 그것이 도움이되기를 바랍니다!

+0

그 두 번째 만 할 수 있습니다. 그것은 프레임 워크 지옥에 빠지지 않고 여러 수준에서 많은 것을 가르칩니다. 가장 중요한 것은 나쁜 프레임 워크와 좋은 프레임 워크를 구분하는 것입니다. –

0

HAL을 준수하는 데 필요한 작업은 거의 없습니다. POJO를 HAL 객체로 감싸는 곳에 미니 라이브러리를 설치하는 것이 좋습니다. 이렇게하면 HalBuilder보다 코드가 더 마음에 드는 방식을 얻을 수 있습니다.

2

저지에서 직접적인 지원을 찾을 수 없지만 Jersey가 POJO를 JSON으로 변환하는 데 사용하는 마샬 러를 사용자 정의하는 방법이 있어야합니다. (중 HalBuilder를 사용하거나 자신의 일부 HAL 호환 코드 생성에 의해)이 유니폼 JAXB based JSON support 사용하는 경우

를, 변환기는 JSON 출력을 cusomize하는 데 사용할 수있는 방법을 보여줍니다 투하 소스 코드 BootstrapTypeConverterTest를보십시오. JSON과의 단위 테스트 변환은 간단한 작업이어야하며 jettison-project는 살펴볼 좋은 예가 있습니다.

유니폼 "POJO Support"-method을 사용하는 경우 사용자 지정 serializer를 만드는 방법에 대한 비슷한 예제는 JacksonHowToCustomSerializers을 참조하십시오.

(JAXB가 포함되어있는 경우, 당신은 또한 processing custom annotations 같은 멋진 일들을 수행 할 수 있습니다.)

당신은 아마 당신이 기대 꽤 좋은 당신의 객체 (입력)과 같은 방법을 생각하고 무엇을 JSON 코드 (출력)이, 이러한 전환에 대한 단위 테스트를 만드는 것은 비교적 간단한 작업이어야합니다.

+1

'halbuilder-jaxrs'는 좋은 통합을 제공합니다. 'JaxRsHalBuilderSupport'를 메시지 본문 작성자로 등록하는 것을 잊지 마십시오. –

+0

https://github.com/Nykredit/jackson-dataformat-hal을 사용하고 있으며 가볍고 유연하게 보입니다. – sschrass