48.3. 애플리케이션 응답 미세 조정
48.3.1. 응답 빌드의 기본 사항
48.3.1.1. 개요
RESTful 서비스는 리소스 메서드가 일반 Java 구문을 반환할 때 허용되는 것보다 소비자에 대해 반환된 응답을 보다 정확하게 제어해야 합니다. JAX-RS Response
클래스를 사용하면 리소스 메서드에서 소비자에게 전송된 반환 상태를 제어하고 HTTP 메시지 헤더와 쿠키를 응답으로 지정할 수 있습니다.
response 개체는 소비자에게 반환되는 엔터티를 나타내는 개체를 래핑합니다. Response
objects wrap the object representing the entity that is returned to the consumer. 응답 오브젝트는
클래스를 팩토로 사용하여 인스턴스화됩니다.
Response
Builder
ResponseBuilder
클래스에는 응답의 메타데이터를 조작하는 데 사용되는 많은 방법이 있습니다. 예를 들어 ResonseBuilder
클래스에는 HTTP 헤더 및 캐시 제어 지시문을 설정하는 메서드가 포함됩니다.
48.3.1.2. 응답 빌더와 응답 빌더 간 관계
Response
클래스에는 보호된 생성자가 있으므로 직접 인스턴스화할 수 없습니다. 이는 Response
클래스로 묶은 ResponseBuilder
클래스를 사용하여 생성됩니다. ResponseBuilder
클래스는 생성된 응답으로 캡슐화될 모든 정보에 대한 소유자입니다. ResponseBuilder
클래스에는 메시지에서 HTTP 헤더 속성을 설정하는 방법도 있습니다.
Response
클래스는 적절한 응답 코드를 쉽게 설정하고 엔터티를 래핑하는 몇 가지 메서드를 제공합니다. 각 공통 응답 상태 코드에 대한 방법이 있습니다. 엔터티 본문 또는 필수 메타데이터를 포함하는 상태에 해당하는 메서드에는 관련 응답 빌더로 정보를 직접 설정할 수 있는 버전이 포함됩니다.
ResponseBuilder
클래스의 build()
메서드는 메서드가 호출될 때 응답 빌더에 저장된 정보를 포함하는 response 오브젝트를 반환합니다. 응답 오브젝트가 반환되면 응답 빌더가 정리 상태로 반환됩니다.
48.3.1.3. 응답 빌더 가져오기
Response
클래스를 사용하여 응답 빌더 가져오기 에서와 같이Response
클래스의 정적 메서드 사용Response
클래스를 사용하여 응답 빌더 가져오기import javax.ws.rs.core.Response; Response r = Response.ok().build();
이러한 방식으로 응답 빌더를 가져올 때 인스턴스에 액세스할 수 없는 경우 여러 단계에서 조작할 수 있습니다. 모든 작업을 단일 메서드 호출로 입력해야 합니다.
Apache CXF 특정
ResponseBuilderImpl
클래스 사용. 이 클래스를 사용하면 응답 빌더에서 직접 작업할 수 있습니다. 그러나 모든 응답 빌더 정보를 수동으로 설정해야 합니다.예 48.1. “
ResponseBuilderImpl
클래스를 사용하여 응답 빌더 가져오기”ResponseBuilderImpl
클래스를 사용하여Response
클래스를 사용하여 응답 빌더 가져오기 을 다시 작성할 수 있는 방법을 보여줍니다.예 48.1.
ResponseBuilderImpl
클래스를 사용하여 응답 빌더 가져오기import javax.ws.rs.core.Response; import org.apache.cxf.jaxrs.impl.ResponseBuilderImpl; ResponseBuilderImpl builder = new ResponseBuilderImpl(); builder.status(200); Response r = builder.build();
참고Response 클래스의 메서드에서 반환된
ResponseBuilder
를Response
BuilderImpl
48.3.1.4. 더 알아보기
Response 클래스에 대한 자세한 내용은
클래스의 Javadoc 을 참조하십시오.
Response
ResponseBuilder 클래스에 대한 자세한 내용은
클래스의 Javadoc 을 참조하십시오.
ResponseBuilder
Apache CXF ResponseBuilderIml
클래스에 대한 자세한 내용은 ResponseBuilderImpl
Javadoc 을 참조하십시오.