336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1️⃣ JAX-RS 설치
pom.xml에 <dependencies> 즉 의존성 설정을 아래처럼 해주자.
<!-- JAX-RS -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.33</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>2.33</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.33</version>
</dependency>
</dependencies>
2️⃣ 서비스 구현
설정 클래스 생성
JAX-RS 서비스가 톰캣 jwbook의 웹 웹 어플리케이션에서 동작한다.
따라서 JAX-RS 서버 모듈을 톰켓에 등록해줄것이다.
src/main/java 에 ch12 패키지를 생성 한후 RestConfig 클래스를 생성해주자.
코드는 아래와 같다.
package ch12;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import java.util.HashMap;
import java.util.Map;
@ApplicationPath("/api")
public class RestConfig extends Application {
public Map<String, Object> getProperties() {
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("jersey.config.server.provider.packages", "ch12");
return properties;
}
}
ㅎㅇ
- JAX-RS 와 관련된 패키지는 반드시 javax.ws.rs.*를 사용해야 한다. 위에 import를 보면 알것이다.
- @ApplicationPath : REST API 서비스 진입점이다.
- properties.put("jersey. ....", "ch12") : ch12클래스에 REST API를 찾는 설정이다. 속성이름은 정확히 작성해야한다.
서비스 클래스 생성
여기에선 ch12 클래스만 REST API로 동작하도록 설정했다.
따라서 다른패키지를 사용하면 안된다.
생성할 클래스의 이름은 RestApiExample이다.
코드는 아래와 같다.
package ch12;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
@Path("/test")
public class RestApiExample {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayHello() {
return "Hello API Service";
}
@POST
public String sayHello(@QueryParam("msg") String msg) {
return msg+" API Service";
}
}
ㅎㅇ
위에서 작성한 RestConfig 클래스에서 진입점을 /api로 설정했다.
따라서 @Path로 추가된 /test를 포함하면 전체 요청 경로는 /api/test가 될것이다.
여기에서도 GET, POST 요청을 구분해서 동작한다.
POST의 경우 쿼리 파라미터로 값을 받아오며
이외에도 /api/test/hello 같이 경로형식 파라미터도 처리가능하다.
이제 테스트를 해보자.
[메인으로 돌아가기]
'Java Spring > 책공부 1 (JSP와 스프링)' 카테고리의 다른 글
27. 뉴스 REST API 서버 구현 (0) | 2022.07.18 |
---|---|
26. Postman으로 REST API 테스트 (0) | 2022.07.18 |
24. 한글 처리 필터 구현 (0) | 2022.07.15 |
23. 리스너 종합 (0) | 2022.07.15 |
22. 필터 (0) | 2022.07.15 |