프로젝트 설정 : Maven, Java, War
Create a Resource Representation Class
src/main/java/kwon/java/tutorial/Greeting.java
id필드는 인사에 대한 고유 식별자이며 content는 인사의 텍스트 표현이다.
package kwon.java.tutorial; public class Greeting{ private final long id; private final String content; public Greeting(long id, String content){ this.id=id; this.content=content; } public long getId(){ return id; } public String getContent(){ return content; } } |
Create a Resource Controller
src/main/java/kwon/java/tutorial/GreetingController.java
HTTP 요청은 컨트롤러에 의해 다루어진다. 이러한 컴포넌트들은 @RestController 어노테이션으로 식별된다.
@GetMapping 어노테이션은 /greeting에 대한 HTTP GET 요청이 greeting() 메소드에 매핑되도록 하는 것을 보장한다.
package kwon.java.tutorial; import java.text.Format; import java.util.concurrent.atomic.AtomicLong; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class GreetingController { private static final String template="Hello, %s!"; private final AtomicLong counter=new AtomicLong(); @GetMapping("/greeting") // @RequestMapping("/greeting") public Greeting greeting(@RequestParam(value="name", defaultValue = "World")String name){ return new Greeting(counter.incrementAndGet(), String.format(template, name)); } } |
Test the Service
http://localhost:8080/greeting
name 쿼리에 아무것도 던지지않았을 때 디폴트 값은 World
name 쿼리에 spring을 던졌을 때 content값 변경한다. 이는 GreetingController가 예상대로 작동하고 있음을 보여준다.
spring boot guide : RESTful 웹서비스 구축