2016-06-29 4 views
0

API 버전 정보 here에 대한 좋은 토론을 모두 마쳤습니다. 우리는 URI에 버전 번호를 넣기로 결정했기 때문에 uri의 api 버전없이 리소스를 요청한 클라이언트가 기본적으로 최신 버전을 지원해야합니다. 예 :Rest Endpoint 버전 및 URI 별명 지정

http://base_uri/api/customers/1234 (with out api version) 
http://base_uri/api/v3.0/customers/1234 (default to current version) 

1 단계 : 위 해결하기 위해 : 나는 더 좋은 방법이 있으면 알려 주시기 바랍니다 (url rewrite, jboss valve)를 사용하여 URL 재 작성의 생각입니다.

2 단계 : 이제 모든 @Path 주석을 내 버전 번호 "v1"로 미리 보류해야합니다. 나머지 쉬운 자원을 스캔하고 등록하는 동안

@Path("/foo/bar") will now change to @Path("v1/foo/bar"). 

나는 버전

ex: @Path("{version}/foo/bar") 

및 구성 파일에서 버전 이름을 읽는 대신에 장소 홀더를 가진 생각했다. 앞으로 새로운 버전으로 옮기면 우리가 필요로하는 것은 한 곳에서 변화하는 것입니다.

1 단계에서 가장 좋은 방법을 찾고 있습니다. & 2 단계. 어떤 도움이라도 대단히 감사하겠습니다. URL 재 작성이 요구 사항에 대한 약간 복잡 할 수 있기 때문에 나는 나머지 쉬운, JAX-RS 2.0을 사용하고

, JBoss는

답변

0

나는, 2 단계를 제안합니다. 또한 유지 관리 할 하나 이상의 구성 요소를 추가합니다. 2 단계에서는 주석을 컴파일시 평가되므로 주석 만 상수를 취합니다. 따라서 상수를 선언하고 @Path 주석에서이를 재사용하십시오.

public static final String VERSION_1 = "1.0"; // In Constants 클래스.

그런 다음 모든 경로 매핑 또는 사용자가 보유한 특수 효과에서이 값을 사용하십시오.

@Path ("/"+ Constants.VERSION_1 + "/ foo는/바")