2013-11-26 5 views
1

나는 다음과 같은 서명이 방법에 연결할 옵션 requestparams와 방법에 링크HATEOAS는

discoverResponse.add(linkTo(methodOn(SomeController.class).getSomeObjects(null)).withRel("someobjects")) 

그러나 미상 : 봄 HATEOAS의 ControllerLinkBuilder에서 methodOn는 아래와 같이 끝 부분에 ?foo이 추가되어 원하는 링크로 연결되지 않습니다. 위의 목표를 어떻게 달성 할 수 있습니까? 이전 버전과의 호환성이 당신을 위해 이러한 문제이기 때문에

+0

링크의 모양이 중요한 이유는 무엇입니까? 그것은 HATEOAS에 대한 좋은 점 중 하나입니다. 그들이 어떻게 생겼는지는 중요하지 않습니다. –

+0

이 경우에는? foo 부분을 추가하지 않은 이전 구현 (HATEOAS로 구현되지 않았 음)과 똑같이 응답해야하기 때문에 중요합니다. – rkcpi

+0

그래서 이전 버전의 HATEOAS 응용 프로그램과 호환되는 새 버전의 응용 프로그램을 빌드하려고하십니까? 힘들어. 이 경우 하이퍼 미디어 기반 앱을 제작할 때 얻을 수있는 이점은 무엇입니까? –

답변

1

, 당신은 항상 수동으로 다음처럼 링크 개체를 만들 수 있습니다 :

discoverResponse.add(new Link(baseUri() + "/someobjects", "someobjects"));

다른 옵션은 GitHub의에 봄 HATEOAS 포크하는 것, 자신을 프로젝트를 빌드 , 기본값이 처리되는 방식을 ControllerLinkBuilder으로 변경하십시오. 컨텍스트 외 링크 빌더가 선택적 매개 변수를 광고해야하는지 여부를 구별 할 수 있다고 기대하는 방법을 모르겠습니다. HATEOAS 세계에서 매개 변수가 포함되지 않으면 클라이언트는 그것에 대해 알지 못합니다. 그렇다면 선택적 매개 변수가있는 이유는 무엇입니까?