Spring boot로 Rest API 만들기 간단 예제 (4)입니다.
이번에는 CRUD를 실행할 수 있는 Controller를 구현하겠습니다.
실행 결과는 postman으로 확인할 예정입니다.
0. 이전 글 참고
- [SPRING BOOT] REST API 간단 예제 - (1) 프로젝트 생성
- [SPRING BOOT] REST API 간단 예제 - (2) DB, VO, DAO, XML
- [SPRING BOOT] REST API 간단 예제 - (3) Service 만들기
1. 환경
- Visual Studio Code : 1.61.2 version
- Spring boot : 2.6.2 version / gradle
- java 11
2. BookInfoController.java
package com.test.demo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.test.demo.service.BookInfoServiceImpl;
import com.test.demo.vo.BookInfoVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.PathVariable;
@RestController
public class BookInfoController {
@Autowired
BookInfoServiceImpl bookInfoService;
@GetMapping("/book")
public List<BookInfoVO> selectAllBookInfo() {
List<BookInfoVO> allBookInfo = bookInfoService.selectAllBookInfo();
return allBookInfo;
}
@GetMapping("/book/{book_key}")
public BookInfoVO selectByKey(@PathVariable String book_key) {
BookInfoVO bookInfo = bookInfoService.selectByKey(book_key);
return bookInfo;
}
@PostMapping(value="/book/new")
public List<BookInfoVO> insertBookInfo(@RequestBody BookInfoVO bookInfo) {
bookInfoService.insertBookInfo(bookInfo);
return bookInfoService.selectAllBookInfo();
}
@PutMapping(value="/book/{book_key}")
public List<BookInfoVO> updateBookInfo(@PathVariable String book_key, @RequestBody BookInfoVO bookInfo) {
bookInfoService.updateBookInfo(book_key, bookInfo);
return bookInfoService.selectAllBookInfo();
}
@DeleteMapping("/book/{book_key}")
public List<BookInfoVO> deleteBookInfo(@PathVariable String book_key) {
bookInfoService.deleteBookInfo(book_key);
return bookInfoService.selectAllBookInfo();
}
}
- Service 단에서 만든 메서드와 같은 이름으로 모두 만들어줍니다.
- 대체적으로 select는 @GetMapping, insert는 @PostMapping, update는 @PutMapping이나 @PatchMapping, delete는 @DeleteMapping을 사용합니다.
- 이번 예제에서는 update를 Put으로 사용했습니다.
- Mapping 태그를 보면 옆에 경로가 적혀있습니다.
- 해당 경로에 진입하면 만들어 놓은 select, insert, update, delete를 실행할 수 있습니다.
- Mapping 괄호 안에 {}로 되어있는 부분은 파라미터로 받는 부분입니다.
- 경로에 파라미터를 받는 부분이 있다면 @PathVariable로 선언해주면 됩니다.
3. Postman 사용법
- Swagger UI를 연동하지 않았으므로 Postman에서 결과를 확인해보았습니다.
- 먼저, Postman을 다운로드 합니다.
- 프로젝트와 Postman을 실행하고, 컨트롤러에서 만든 대로 경로를 입력합니다.
3-1. selectAllBookInfo
- GET을 선택하고 경로를 입력한 다음 Send 버튼을 누른 화면입니다.
- 아래 화면과 같이 모든 책 목록이 JSON 형식으로 뿌려집니다.
3-2. selectByKey
- book_key를 이용해 책을 검색한 화면입니다.
- 해당 키를 가진 책의 정보만 출력됩니다.
3-3. insertBookInfo
- 책 데이터를 추가한 모습입니다.
- 추가할 책의 정보를 Body에서 raw JSON 형태로 적은 후 Send 합니다.
- insert는 POST 형식을 사용합니다.
3-4. updateBookInfo
- PUT을 선택하고 Body에 수정할 정보를 입력합니다.
- book_key가 1000인 책의 정보를 수정하였습니다.
3-5. deleteBookInfo
- DELETE를 선택하고 삭제할 book_key를 입력합니다.
- book_key가 1000인 데이터를 삭제했습니다.
- 삭제 후, 책 전체 목록을 반환하였습니다.
4. 다음 글 참고
- [SPRING BOOT] REST API 간단 예제 - (5) Swagger UI 설정
- [SPRING BOOT] REST API 간단 예제 - (6) Swagger UI 꾸미기
이상으로 Spring boot Rest API 간단 예제에서 Controller 생성과 Postman 결과 출력까지 해보았습니다.
'Web Developer's Story > SPRING BOOT' 카테고리의 다른 글
[SPRING BOOT] REST API 간단 예제 - (6) Swagger UI 꾸미기 (0) | 2022.03.02 |
---|---|
[SPRING BOOT] REST API 간단 예제 - (5) Swagger UI 설정 (0) | 2022.02.25 |
[SPRING BOOT] REST API 간단 예제 - (3) Service 만들기 (0) | 2022.02.17 |
[SPRING BOOT] REST API 간단 예제 - (2) DB, VO, DAO, XML (0) | 2022.02.14 |
[SPRING BOOT] REST API 간단 예제 - (1) 프로젝트 생성 (0) | 2022.02.10 |