베오
DCode
베오
전체 방문자
오늘
어제
  • 분류 전체보기 (218)
    • 공지사항 (1)
    • 잡설 (1)
    • Programming (33)
      • [C] (1)
      • [Java] (4)
      • [Python] (2)
      • [Android] (2)
      • [Network] (0)
      • [Operation System] (2)
      • [Spring Boot] (22)
      • [Docker] (0)
    • Algorithm (31)
      • 자료구조 (2)
      • 알고리즘 (Java) (14)
      • 알고리즘 (기초) (15)
    • Coding Test (131)
      • BOJ (131)
      • Algospat (0)
    • 이론적인거 (14)
      • 보안 (5)
      • 오류 해결 (2)
      • 디자인 패턴 (5)
      • 네트워크 (1)
      • 기타 (1)
    • 최신기술 (4)
      • 블록체인 (1)
    • [Project] (1)

블로그 메뉴

  • 🐈‍⬛ GitHub
  • 📫 방명록
  • 🔖 태그

공지사항

인기 글

티스토리

hELLO · Designed By 정상우.
베오

DCode

Programming/[Spring Boot]

GET API 만들기

2023. 1. 19. 10:50
  • 다음처럼 Controller 패키지에 GetController를 생성한다.
    package com.springboot.api.Controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/api/v1/get-api")
    public class GetController {
    }

매개변수가 없는 GET 메서드 구현

GetController내에 @GetMapping(”/name”) Annotation을 사용하여 메서드를 생성한다.

추후에는 메서드 형식에 맞게 다음처럼 Annotation을 생성할 것이다.

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
public class GetController {
// 매개변수가 없는 GET 메서드 구현
    @GetMapping("/name")
    public String getName(){
        return "Flature";
    }
}
  • 결과는 다음과 같다.
    http://localhost:8080/api/v1/get-api/name

동적 GetMapping

예를들어 게시글의 1번 페이지를 보고 싶다면 다음 URI를 입력해야 한다고 하자.

  • http://test.com/page/1

2번 페이지를 보고 싶으면 다음 처럼 입력을 해야 할 것이다.

  • http://test.com/page/2

각 페이지마다 메소드를 만들기는 너무 부적절하므로, 동적으로 반환해야 한다.

동적으로 반환하는 방법에는 크게 2가지가 있다.

  • @PathVariable을 활용
  • @RequestParam을 활용

1. @PathVariable을 활용한 GET 메서드 구현

  • 다음 코드를 작성한다.
    public class GetController {
    		// @PathVariable을 활용한 GET 메서드 구현
        @GetMapping("/variable1/{variable}")
        public String getVariable1(@PathVariable String variable){
            return variable;
        }
    }
  • import되지 않은 것은 자동으로 추가하도록하자.

중요한 점은 @GetMapping(”/variable1/{variable}”) 의 variable과

getVariable1 메소드의 매개변수인 variable이 같아야 한다는 것이다.

2. @RequestParam을 활용한 GET 메서드 구현

URI형식에 {키}={값} 형태를 본 적이 있을것이다.

  • 예를들어 1번 게시글을 보고싶다고 하자. URI는 다음과 같을 것이다.
    • http://test.com?board=1

위와 같은 형식을 메소드를 구현해보자

public class GetController {
		// @RequestParam을 활용한 GET 메서드 구현
    @GetMapping("/request1")
    public String getRequestParam1(
            @RequestParam String name,
            @RequestParam String email,
            @RequestParam String organization){
        return name+" "+email+" "+organization;
    }
}
  • 결과는 다음과 같다.
http://localhost:8080/api/v1/get-api/request1?name=value1&email=value2&organization=value3

3. DTO 객체를 활용한 GET 메서드 구현

매우 편리한 기능.

각 Param마다 Setter를 통해서 객체를 구현하지 않아도, 자동으로 객체를 만들어준다.

DTO가 뭔데?

💡
DTO(Data Tranfer Object) 다른 레이어 간 데이터 교환에 활용되는 객체

DTO랑 VO랑 뭐가 다른데?

DTOVO
데이터 교환 목적으로 설계읽기전용으로 설계
  • DTO 클래스를 직접 만들어보자
    package com.springboot.api.dto;
    
    public class MemberDTO {
        private String name;
        private String email;
        private String organization;
    }

    여기까지 작성한 다음

    Alt+Insert단축키를 활용하여 다음 두 개를 생성한다.

    그럼 다음과 같이 코드가 추가된다.

    package com.springboot.api.dto;
    
    public class MemberDTO {
        private String name;
        private String email;
        private String organization;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public String getOrganization() {
            return organization;
        }
    
        public void setOrganization(String organization) {
            this.organization = organization;
        }
    
        @Override
        public String toString() {
            return "MemberDTO{" +
                    "name='" + name + '\'' +
                    ", email='" + email + '\'' +
                    ", organization='" + organization + '\'' +
                    '}';
        }
    }
  • Controller에 관련 메서드를 추가하자
    
    public class GetController {
    		// DTO 객체를 활용한 GET 메서드 구현
        @GetMapping(value="/request3")
        public String getRequestParam3(MemberDTO memberDTO){
            return memberDTO.toString();
        }
    }
    

    이제 다음 주소를 입력하면 다음과 같은 결과가 나온다.

    http://localhost:8080/api/v1/get-api/request3?name=value1&email=value2&organization=value3


Uploaded by N2T

'Programming > [Spring Boot]' 카테고리의 다른 글

Swagger를 활용한 REST API 명세 문서화  (0) 2023.01.25
PUT/DELETE API 만들기  (1) 2023.01.21
POST API 만들기  (0) 2023.01.20
프로젝트 생성하기  (0) 2023.01.19
Talend API Tester를 통해 동작 테스트를 해보자  (0) 2023.01.19
    'Programming/[Spring Boot]' 카테고리의 다른 글
    • PUT/DELETE API 만들기
    • POST API 만들기
    • 프로젝트 생성하기
    • Talend API Tester를 통해 동작 테스트를 해보자
    베오
    베오

    티스토리툴바