- 다음처럼
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랑 VO랑 뭐가 다른데?
DTO | VO |
---|---|
데이터 교환 목적으로 설계 | 읽기전용으로 설계 |
- 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 |