ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring Boot] 4. Get API (스프링 부트를 배워보자.)
    Spring Boot 2023. 9. 16. 13:56
    728x90
    반응형

    안녕하세요 나홀로전세집입니다.

    오늘은 Get API를 배워보겠습니다.

     

    Get API란?

    GetAPI를 합친 단어입니다. 여기서 API는 저번 시간에 배웠던 Application Programming Interface의 약자이고,

    Get은 HTTP 요청 메서드 중 하나입니다. HTTP 메서드에는 Get, Post, Put, Delete 등이 있습니다.

     

    1. @RequestMapping 

      - value와 method로 정의하는 API 개발 방식입니다. 고전적인 방법이라 이제는 사용을 많이 안한다고 합니다.

    아래 코드는 value를 "/hello"로 지정하고, Get으로 매핑하는 예시 코드입니다.

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

    위 코드가 정상적으로 실행을 했을 때 "http://localhost:8080/hello"에 Get 요청을 보내면 "Hello World!" 가 반환될 것입니다.

     

    2. @GetMapping

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

    아래 코드는 @GetMapping의 괄호 안에 바로 value를 "/hello"로 지정하는 코드입니다. 

    @GetMapping("/hello")
        public String hello(){
            return "Hello World!";
        }

    위 코드도 정상적으로 실행을 했을 때 "http://localhost:8080/hello"에 Get 요청을 보내면 "Hello World!" 가 반환될 것입니다.

     

    3. @PathVariable

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

    아래 코드에서 @GetMapping에서 사용된 {변수}의 이름과 메서드의 매개변수와 일치시켜야 합니다.

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

     

     

    위 코드가 정상적으로 실행을 했을 때 "http://localhost:8080/variable1/나홀로전세집"에 Get 요청을 보내면 "나홀로전세집" 이 반환될 것입니다.

     

    4. @RequestParam

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

    ‘?’를 기준으로 우측에 {키}={값}의 형태로 전달되며, 복수 형태로 전달할 경우 &를 사용합니다.

    @GetMapping(value = "/request1")
        public String getRequestParam1(
                @RequestParam String name,
                @RequestParam String email,
                @RequestParam String organization){
            return name +" "+email+" "+organization;
        }

    위 코드가 정상적으로 실행을 했을 때

    "http://localhost:8080/request1?name=나홀로전세집&email=a@a.com&organization=학생"에 Get 요청을 보내면

    "나홀로전세집 a@a.com 학생" 이 반환될 것입니다.

     

    위 방식 말고 Map 형식으로 요청 값을 줄 수도 있습니다.

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

    위 코드가 정상적으로 실행을 했을 때

    "http://localhost:8080/request2?name=나홀로전세집&email=a@a.com&organization=학생"에 Get 요청을 보내면

    "

    name : 나홀로전세집

    email : a@a.com

    organization : 학생

    "

    이 반환될 것입니다.

     

     

    5. DTO 사용

      - DTO는 Data Transfer Object의 약자로 데이터 전송을 위한 객체를 나타냅니다.

     

    public class MemberDTO {
        private String name;
        private String email;
        private String organization;
    							.
    							.
    							.
        @Override
        public String toString() {
            return "MemberDTO{" +
                    "name='" + name + '\'' +
                    ", email='" + email + '\'' +
                    ", organization='" + organization + '\'' +
                    '}';
        }
    }

    위와 같이 MemberDTO 클래스가 있다고 가정했을 때

     

    @GetMapping(value="/request3")
        public String getRequestParam3(MemberDTO memberDTO){
            return memberDTO.toString();
        }

    위 처럼 코드를 작성하고 정상적으로 실행이 됐을 때
    "http://localhost:8080/request3?name=나홀로전세집&email=a@a.com&organization=학생"에 Get 요청을 보내면

    "MemberDTO{name='나홀로전세집', email='a@a.com', organization='학생'}" 라고 반환될 것 입니다.

     

     

    오늘은 Get API를 배워봤습니다.

    다음에는 Post API를 포스팅 해보겠습니다.

    앞으로 쉬지 않고 열심히 공부해보도록 노력하겠습니다.

     

    오늘도 즐코딩 하시고 좋은 하루 되세요~

     

    728x90
    반응형
Designed by Tistory.