RESTful 애플리케이션에서 자원 정의
JAX-RS(Java™ API for RESTful Web Services)를 사용하여 REST(Representational State Transfer) 원칙을 준수하는 서비스를 개발할 수 있습니다. RESTful 서비스는 자원 조작에 기반합니다. 자원은 정적 또는 동적으로 업데이트된 데이터를 포함할 수 있습니다. 애플리케이션에서 자원을 식별하여 서비스를 보다 유용하게 사용하고 더 쉽게 개발할 수 있습니다.
시작하기 전에
RESTful 서비스로 게시하려는 애플리케이션을 식별한 후 먼저 RESTful 애플리케이션의 자원을 정의해야 합니다. 애플리케이션의 자원을 정의한 후 게시하려는 데이터 유형을 고려하십시오. REST 기술을 사용하는 사용자에게 표시하려는 정보를 포함하는 관계형 데이터베이스가 이미 있을 수 있습니다. 이미 해당 데이터에 액세스하는 경우를 위해 정의된 Java 클래스 세트가 있습니까?
예를 들어, 서점을 지원하도록 정의된 애플리케이션의 경우를 고려하십시오. 현재 이 애플리케이션은 서적 콜렉션 및 각 서적의 인벤토리에서 다양한 항목을 정의하는 여러 테이블을 포함하는 데이터베이스를 보유합니다. 이 예제에는 RESTful 애플리케이션의 데이터베이스에서 데이터를 표시하는 여러 방법이 있습니다. 한 가지 접근 방식은, 개별 자원으로 각 테이블을 고려하는 방법입니다. 그러면 RESTful 요청의 각 verb가 해당 테이블에서 데이터베이스가 지원하는 조치(예: 선택, 삽입, 업데이트, 삭제)에 맵핑됩니다. 이 예제는 RESTful 애플리케이션 작성에 대한 단순한 접근 방식을 보여줍니다. 서적 스토어 예제를 사용하는 이 접근 방식은 자원의 URL 패턴 정의, 자원 메소드, HTTP 헤더 및 응답 코드, 미디어 유형, 자원에 대한 요청 표시의 매개변수를 설명하는 문서에서도 사용됩니다.
서적 스토어 애플리케이션에 대한 이 데이터베이스를 지원하는 경우 데이터베이스에 액세스하고 각 테이블에서 데이터 검색을 담당하는 기존 코드가 이미 있을 수 있습니다. 각 테이블의 행이 논리적으로 각 자원을 표시해도 자원을 정의하는 데 액세서 클래스를 사용합니다. JAX-RS 애플리케이션 구현 문서에서는 JAX-RS 애플리케이션에 이 클래스를 통합하는 방법에 대한 세부사항을 제공합니다.
또는 데이터베이스에 상주하지 않지만 자원으로 분산시키려는, 추가 정적 컨텐츠가 있을 수 있습니다. 문서 콜렉션이 다양한 형식인지, 아니면 다른 원격 시스템에 대한 자원 기반 측면인지에 상관없이 JAX-RS를 사용할 때 다중 자원에서 컨텐츠를 분산시킬 수 있습니다.
이 태스크 정보
자원은 RESTful 서비스의 기본 빌딩 블록입니다. 온라인 서적 스토어 애플리케이션에서 자원의 예제에는, 서적, 스토어에서 주문, 사용자 콜렉션이 포함됩니다.
자원은 URL로 주소를 지정할 수 있으며 HTTP 메소드는 자원에서 조작을 수행할 수 있습니다. 자원은 XML 및 JSON과 같은 서로 다른 형식을 사용하는 다중 표시를 포함할 수 있습니다. 요청 및 응답과 관련된 추가 정보를 전달하도록 HTTP 헤더 및 매개변수를 사용할 수 있습니다.
JAX-RS를 통해 JAX-RS 특정 어노테이션으로 기존 또는 새 POJO(Plain Old Java Objects)에서 어노테이션을 작성할 수 있습니다. JAX-RS의 어노테이션이 있는 자원 클래스 및 어노테이션이 있는 메소드는 URI 패턴에 따라 시작됩니다.
프로시저
- 애플리케이션에서 자원 유형을 식별하십시오.
- (선택사항) 자원 클래스로 사용할 기존의 Java 클래스를 식별하십시오.
- 기존 Java 클래스가 없는 자원에 대해 새 Java 클래스를 작성하십시오.
결과
애플리케이션에서 자원의 콜렉션으로 표시하려는 컨텐츠를 정의합니다.
다음에 수행할 작업
정의한 자원에 기반하여 JAX-RS 애플리케이션에 대한 자원을 정의할 때 수행할 추가 단계를 자세히 학습하려면 자원의 URL 패턴 정의, 자원 메소드, HTTP 헤더 및 응답 코드, 미디어 유형, 자원에 대한 요청 표시의 매개변수를 참조하십시오.