46.4. 리소스 메서드 작업
46.4.1. 개요
리소스 메서드에는 Cryostat-RS 주석을 사용하여 주석이 추가됩니다. 메서드에서 처리하는 요청 유형을 지정하는 HTTP 메서드 주석 중 하나가 있습니다. Cryostat-RS는 리소스 메서드에 여러 제약 조건을 배치합니다.
46.4.2. 일반 제약 조건
모든 리소스 메서드는 다음 조건을 충족해야 합니다.
- 공개적이어야 합니다.
- “HTTP 동사 지정” 에 설명된 HTTP 메서드 주석 중 하나로 데코레이팅해야 합니다.
- “매개 변수” 에 설명된 대로 둘 이상의 엔터티 매개변수가 없어야 합니다.
46.4.3. 매개 변수
리소스 메서드 매개변수는 다음 두 가지 형태를 취합니다.
엔터티 매개변수-Entity 매개변수는 주석이 없습니다. 해당 값은 요청 본문에서 매핑됩니다. 엔터티 매개 변수는 애플리케이션에 엔터티 공급자가 있는 모든 유형일 수 있습니다. 일반적으로 해당 오브젝트는 CryostatB 오브젝트입니다.
중요리소스 메서드에는 엔터티 매개 변수가 하나만 있을 수 있습니다.
엔터티 공급자에 대한 자세한 내용은 51장. 엔터티 지원 을 참조하십시오.
주석이 달린 매개 변수-Annotated 매개변수는 요청에서 매개변수 값이 매핑되는 방법을 지정하는 Cryostat-RS 주석 중 하나를 사용합니다. 일반적으로 매개 변수의 값은 요청 URI의 일부에서 매핑됩니다.
요청 데이터를 메서드 매개변수에 매핑하기 위해 Cryostat-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
인 경우 resource 메서드는 HTTP 상태 코드를 204
로 설정합니다. resource 메서드가 null
이외의 값을 반환하면 HTTP 상태 코드를 200
으로 설정합니다.