프로젝트 설정 : 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

localhost:8080/greeting

name 쿼리에 spring을 던졌을 때 content값 변경한다. 이는 GreetingController가 예상대로 작동하고 있음을 보여준다.

localhost:8080/greeting?name=spring

 

 

 

spring boot guide : RESTful 웹서비스 구축

https://spring.io/guides/gs/rest-service/

+ Recent posts