46.4. 리소스 메서드 작업
46.4.1. 개요
리소스 메서드에는 JAX-RS 주석을 사용하여 주석이 추가됩니다. 메서드 프로세스에 대한 요청 유형을 지정하는 HTTP 메서드 주석 중 하나가 있습니다. JAX-RS는 리소스 메서드에 여러 가지 제약 조건을 배치합니다.
46.4.2. 일반 제약 조건
모든 리소스 메서드는 다음 조건을 충족해야 합니다.All resource methods must meet the following conditions:
- 공개가 되어야 합니다.
- “HTTP 동사 지정” 에 설명된 HTTP 메서드 주석 중 하나로 장식해야 합니다.
- “매개 변수” 에 설명된 대로 엔터티 매개 변수가 두 개 이상 없어야 합니다.
46.4.3. 매개 변수
리소스 메서드 매개변수는 다음 두 가지 형식을 사용합니다.
엔터티 매개변수-Entity 매개변수는 주석이 없습니다. 해당 값은 요청 엔터티 본문에서 매핑됩니다. 엔터티 매개 변수는 애플리케이션에 엔터티 공급자가 있는 모든 유형일 수 있습니다. 일반적으로 이러한 개체는 JAXB 오브젝트입니다.
중요리소스 메서드에는 하나의 엔터티 매개 변수만 있을 수 있습니다.
엔터티 공급자에 대한 자세한 내용은 51장. 엔터티 지원 을 참조하십시오.
주석이 달린 매개변수 -Annotated 매개변수는 요청에서 매개변수 값을 매핑하는 방법을 지정하는 JAX-RS 주석 중 하나를 사용합니다. 일반적으로 매개 변수의 값은 요청 URI의 일부에서 매핑됩니다.
요청 데이터를 메서드 매개 변수에 매핑하는 데 JAX-RS 주석을 사용하는 방법에 대한 자세한 내용은 47장. 리소스 클래스 및 메서드에 정보 전달 을 참조하십시오.
예 46.4. “유효한 매개변수 목록이 있는 리소스 메서드” 유효한 매개 변수 목록이 있는 리소스 메서드를 보여줍니다.
예 46.4. 유효한 매개변수 목록이 있는 리소스 메서드
@POST @Path("disaster/monster/giant/{id}") public void addDaikaiju(Kaiju kaiju, @PathParam("id") String id) { ... }
예 46.5. “매개변수가 유효하지 않은 리소스 메서드” 매개 변수 목록이 유효하지 않은 리소스 메서드를 표시합니다. 주석이 없는 두 개의 매개 변수가 있습니다.
예 46.5. 매개변수가 유효하지 않은 리소스 메서드
@POST @Path("disaster/monster/giant/") public void addDaikaiju(Kaiju kaiju, String id) { ... }
46.4.4. 반환 값
리소스 메서드는 다음 중 하나를 반환할 수 있습니다.
-
void
애플리케이션에 엔터티 공급자가 있는 Java 클래스
엔터티 공급자에 대한 자세한 내용은 51장. 엔터티 지원 을 참조하십시오.
Response
오브젝트Response
오브젝트에 대한 자세한 내용은 48.3절. “애플리케이션 응답 미세 조정” 에서 참조하십시오.GenericEntity<T>
객체GenericEntity<T> 오브젝트에 대한 자세
한 내용은 48.4절. “일반 유형 정보가 있는 엔터티 반환” 을 참조하십시오.
모든 리소스 메서드는 HTTP 상태 코드를 요청자에게 반환합니다. 메서드 반환 유형이 void
이거나 반환된 값이 null
이면 리소스 메서드는 HTTP 상태 코드를 204
로 설정합니다. 리소스 메서드가 null
이외의 값을 반환하는 경우 HTTP 상태 코드를 200
으로 설정합니다.