@Controller 관련 Annotation (REST)

kimki·2022년 4월 11일
0

Spring ( Boot ) / Java

목록 보기
2/5
@RestController // = @ResponseBody + @Controller
@RequestMapping("test")
public class TestController {

	// 0. HTTP - ResponseEntity로 응답 ( ResponseDTO + HTTP Status나 Header를 조작 )
		@GetMapping("/testResEntity")
    public ResponseEntity<?> testControllerResEntity() {
        List<String> list = new ArrayList<>();
        list.add("hey, this is Response Entity. ");
        ResponseDTO<String> res = ResponseDTO.<String>builder().data(list).build();
//        return ResponseEntity.badRequest().body(res);
        return ResponseEntity.ok().body(res);
    }

	// 1. HTTP - ResponseBody에 JSON 형식으로 담아서 응답
    @GetMapping("/testResBody")
    public ResponseDTO<String> testControllerResBody() {
        List<String> list = new ArrayList<>();
        list.add("Hello , receive my ResponseDTO");
        ResponseDTO<String> res = ResponseDTO.<String>builder().data(list).build();
        return res;
    }
	// 2. HTTP - Request 에 담긴 JSON을 받음
    @GetMapping("/testReqBody")
    public String testControllerReqBody(@RequestBody TestRequestBodyDTO testRequestBodyDTO) {
        return "Hello Req Body, id :" + testRequestBodyDTO.getId() + "msg :" + testRequestBodyDTO.getMsg();
    }
	// 3. 요청 매개변수를 변수로 매핑
    @GetMapping("/testReqParam") // 127.0.0.1:8080/test/testReqParam?id=123
    public String testControllerReqParam(@RequestParam(required = false) int id) {
        return "okok "+ id;
    }
	// 4. 경로의 값을 변수로 매핑
    @GetMapping("/{id}") // 127.0.0.1:8080/test/123123
    public String testControllerWithPath(@PathVariable(required = false) int id) {
        return "hello " + id;
    }
	// 5. 
    @GetMapping("/testGet")
    public String testGetController() {
        return "hi test Get";
    }
	// 6.
    @GetMapping
    public String testController() {
        return "hi";
    }
}
profile
개발 자라는 사람.

0개의 댓글