52.2.2. URI 작업
52.2.2.1. 개요
URI 컨텍스트를 사용할 때의 주요 이점 중 하나는 서비스의 기본 URI와 선택한 리소스에 대한 URI 경로 세그먼트에 대한 액세스를 제공한다는 것입니다. 이 정보는 URI에 따라 처리 결정을 내리거나 응답의 일부로 반환하도록 URI 계산과 같은 여러 목적에 유용할 수 있습니다. 예를 들어, 요청의 기본 URI에 .com 확장 기능이 포함되어 있는 경우 서비스가 US $를 사용할 수 있으며 기본 URI에 .co.uk 확장이 포함된 경우 영국 Pound를 결정할 수 있습니다.
UriInfo 인터페이스는 URI의 부분에 액세스하기 위한 메서드를 제공합니다.
- 기본 URI
- 리소스 경로
- 전체 URI
52.2.2.2. 기본 URI 가져오기
기본 URI 는 서비스가 게시되는 루트 URI입니다. 서비스의 @Path
주석에 지정된 URI의 일부를 포함하지 않습니다. 예를 들어 예 47.5. “URI 디코딩 비활성화” 에 정의된 리소스를 구현하는 서비스가 http://fusesource.org 에 게시되고 http://fusesource.org/montersforhire/nightstalker?12 에서 요청이 작성된 경우 기본 URI는 http://fusesource.org입니다.
표 52.2. “리소스의 기본 URI에 액세스하는 방법” 기본 URI를 반환하는 메서드를 설명합니다.Describes the methods that return the base URI.
방법 | Desription |
---|---|
|
서비스의 기본 URI를 |
기본 URI를 |
52.2.2.3. 경로 가져오기Get the path
요청 URI의 경로 부분은 현재 리소스를 선택하는 데 사용된 URI 부분입니다. 기본 URI를 포함하지 않지만 URI에 포함된 URI 템플릿 변수와 매트릭스 매개 변수를 포함합니다.
경로 값은 선택한 리소스에 따라 다릅니다. 예를 들어 리소스의 경로 가져오기 에 정의된 리소스의 경로는 다음과 같습니다.
-
rootPath
— /monstersforhire/ getterPath
— /mostersforhire/nightstalkerGET
요청은 /monstersforhire/nightstalker 에서 작성되었습니다.putterPath
— /mostersforhire/911PUT
요청은 /monstersforhire/911 에서 생성되었습니다.
리소스의 경로 가져오기
@Path("/monstersforhire/") public class MonsterService { @Context UriInfo rootUri; ... @GET public List<Monster> getMonsters(@Context UriInfo getUri) { String rootPath = rootUri.getPath(); ... } @GET @Path("/{type}") public Monster getMonster(@PathParam("type") String type, @Context UriInfo getUri) { String getterPath = getUri.getPath(); ... } @PUT @Path("/{id}") public void addMonster(@Encoded @PathParam("type") String type, @Context UriInfo putUri) { String putterPath = putUri.getPath(); ... } ... }
표 52.3. “리소스 경로에 액세스하는 방법” 리소스 경로를 반환하는 메서드를 설명합니다.Describes the methods that return the resource path.
방법 | Desription |
---|---|
| 리소스의 경로를 디코딩된 URI로 반환합니다. |
|
리소스의 경로를 반환합니다. |
|
디코딩된 경로를 javax.ws.rs.core.PathSegment 오브젝트 목록으로 반환합니다. 매트릭스 매개 변수를 포함한 경로의 각 부분은 목록의 고유한 항목에 배치됩니다.
예를 들어 리소스 경로 상자/round# |
|
경로를 javax.ws.rs.core.PathSegment 오브젝트 목록으로 반환합니다. 매트릭스 매개 변수를 포함한 경로의 각 부분은 목록의 고유한 항목에 배치됩니다.
예를 들어 리소스 경로 box# |
52.2.2.4. 전체 요청 URI 만들기
표 52.4. “전체 요청 URI에 액세스하는 방법” 전체 요청 URI를 반환하는 메서드를 설명합니다.Describes the methods that return the full request URI. 요청 URI를 반환하거나 리소스의 절대 경로를 반환하는 옵션이 있습니다. 차이점은 요청 URI에는 URI에 추가된 쿼리 매개 변수가 포함되어 있으며 절대 경로에 쿼리 매개 변수가 포함되지 않는다는 것입니다.
방법 | Desription |
---|---|
|
쿼리 매개 변수와 매트릭스 매개 변수를 포함한 전체 요청 URI를 |
| |
|
matrix 매개 변수를 포함한 전체 요청 URI를 |
matrix 매개 변수를 포함한 전체 요청 URI를 |
URI http://fusesource.org/montersforhire/nightstalker?12.을 사용하여 이루어진 요청의 경우 getRequestUri()
메서드가 http://fusesource.org/montersforhire/nightstalker?12 를 반환합니다. getAbsolutePath()
메서드는 http://fusesource.org/montersforhire/nightstalker 를 반환합니다.