ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Boot - GET API
    Framework & Library/Spring Boot 2022. 1. 31. 20:21

    GET API

    @RestController

     

     - Spring Framework 4 버전부터 사용 가능한 애너테이션이다.

     - "@Controller"와 "@ResponseBody"가 결합된 애너테이션이다.

     - 컨트롤러 클래스 하위 메서드에 "@ResponseBody" 애너테이션을 붙이지 않아도 문자열, JSON 등을 전송할 수 있다.

     - View를 거치지 않고 HTTP ResponseBody에 직접 리턴 값을 담아 보내게 된다.

     

    @RequestMapping
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "Hello World";
    }

     - 요청에 대해서 어떤 컨트롤러가 처리할지를 매핑하기 위한 애너테이션이다.

     - value와 method로 정의하여 API를 개발하는 방식으로, 현재는 거의 사용하지 않는 방식이다.

     

     

     - 컨트롤러와 매핑된 URL로 요청을 보내면 "Hello World"가 응답되는 것을 확인할 수 있다.

     

    @GetMapping
    @GetMapping(value = "/name")
    public String getName() {
        return "임빈영";
    }

     - 별도의 파리미터 없이 GET API를 호출하는 경우 사용되는 방법이다.

     

     

     - 컨트롤러와 매핑된 URL로 요청을 보내면 "임빈영"이 응답되는 것을 확인할 수 있다.

     

    @PathVariable
    @GetMapping(value = "/variable01/{variable}")
    public String getVariable01(@PathVariable String variable) {
        return variable;
    }

     - GET 형식의 요청에서 파라미터를 전달하기 위해 URL에 값을 담아 요청하는 방법이다.

     - 위 코드와 같이 "@GetMapping"에서 사용된 {변수}의 이름과 메서드의 "@PathVariable" 매개변수와 일치시켜야 한다.

     

     

     - 컨트롤러와 매핑된 URL로 요청을 보내면 "hello"가 응답되는 것을 확인할 수 있다.

     

     

    @GetMapping(value = "/variable02/{variable}")
    public String getVariable02(@PathVariable("variable") String var) {
        return var;
    }

     - 위 방식은 "@GetMapping"에서 사용된 {변수}의 이름과 메서드의 "@PathVariable" 매개변수가 다를 경우 사용하는 방식이다.

     

     

     - 컨트롤러와 매핑된 URL로 요청을 보내면 "spring"이 응답되는 것을 확인할 수 있다.

     

    @RequestParam
    @GetMapping(value = "/request01")
    public String getRequestParam01(@RequestParam String name, @RequestParam String email) {
        return name + ", " + email;
    }

     - GET 형식의 요청에서 쿼리 문자열을 전달하기 위해 사용되는 방법이다.

     - '?'를 기준으로 우측에 {key}={value}의 형태로 전달되며, 복수 형태로 전달할 경우 '&'를 사용한다.

     

     

     - 컨트롤러와 매핑된 URL로 요청을 보내면 "임빈영, qlsdud960604@gmail.com"이 응답되는 것을 확인할 수 있다.

     

     

    @GetMapping(value = "/request02")
    public String getRequestParam02(@RequestParam Map<String, String> param) {
        StringBuilder sb = new StringBuilder();
    
        param.entrySet().forEach((map) -> {
            sb.append(map.getKey() + " : " + map.getValue() + "\n");
        });
    
        return sb.toString();
    }

     - 위 코드는 어떤 요청 값이 들어올지 모르는 경우 사용하는 방식이다.

     

     

     - 컨트롤러와 매핑된 URL로 요청을 보내면 map 자료구조 내의 데이터들이 정확하게 응답되는 것을 확인할 수 있다.

     

    DTO 사용
    @GetMapping(value = "/request03")
    public String getRequestParam03(MemberDTO memberDTO) {
        return memberDTO.toString();
    }

     - GET 형식의 요청에서 쿼리 문자열을 전달하기 위해 사용되는 방법이다.

     - key와 value가 정해져 있지만, 받아야 할 파라미터가 많을 경우 DTO 객체를 사용한 방식이다.

     

     

     - 컨트롤러와 매핑된 URL로 요청을 보내면 MemberDTO의 데이터들이 정확하게 응답되는 것을 확인할 수 있다.


     

    GitHub - qlsdud0604/spring-boot-study

    Contribute to qlsdud0604/spring-boot-study development by creating an account on GitHub.

    github.com

     

    728x90

    댓글

Designed by Tistory.