Spring boot로 Rest API 만들기 간단 예제 (6)입니다.
구현한 Swagger UI에서 컨트롤러와 메서드의 이름 및 정보를 설정해보려고 합니다.
0. 이전 글 참고
- [SPRING BOOT] REST API 간단 예제 - (1) 프로젝트 생성
- [SPRING BOOT] REST API 간단 예제 - (2) DB, VO, DAO, XML
- [SPRING BOOT] REST API 간단 예제 - (3) Service 만들기
- [SPRING BOOT] REST API 간단 예제 - (4) Controller, Postman 출력
- [SPRING BOOT] REST API 간단 예제 - (5) Swagger UI 설정
1. 환경
- Visual Studio Code : 1.61.2 version
- Spring boot : 2.5.7 version / gradle
- java 11
2. Controller 이름 변경 및 간단 정보
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 io.swagger.annotations.Api;
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;
@Api(tags = {"01. Book Info"}, description = "도서 관련 서비스")
@RestController
public class BookInfoController {
.
.
.
}
- 이전에 구현한 Controller 파일입니다.
- 컨트롤러 상단에 @Api 어노테이션을 추가합니다.
- tags는 Swagger UI에 보일 컨트롤러의 이름입니다.
- description은 컨트롤러 이름 옆에 보일 간단한 정보입니다.
3. GET, POST, PUT, DELETE 메소드 정보 추가
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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
@Api(tags = {"01. Book Info"}, description = "도서 관련 서비스")
@RestController
public class BookInfoController {
@Autowired
BookInfoServiceImpl bookInfoService;
@ApiOperation(value = "도서 목록 조회", notes = "도서 목록을 조회한다")
@GetMapping("/book")
public List<BookInfoVO> selectAllBookInfo() {
List<BookInfoVO> allBookInfo = bookInfoService.selectAllBookInfo();
return allBookInfo;
}
@ApiOperation(value = "도서 정보 조회", notes = "도서 정보를 조회한다")
@GetMapping("/book/{book_key}")
public BookInfoVO selectByKey(@PathVariable String book_key) {
BookInfoVO bookInfo = bookInfoService.selectByKey(book_key);
return bookInfo;
}
@ApiOperation(value = "도서 정보 추가", notes = "도서 정보를 추가한다")
@PostMapping(value="/book/new")
public List<BookInfoVO> insertBookInfo(@RequestBody BookInfoVO bookInfo) {
bookInfoService.insertBookInfo(bookInfo);
return bookInfoService.selectAllBookInfo();
}
@ApiOperation(value = "도서 정보 수정", notes = "도서 정보를 수정한다")
@PutMapping(value="/book/{book_key}")
public List<BookInfoVO> updateBookInfo(@PathVariable String book_key, @RequestBody BookInfoVO bookInfo) {
bookInfoService.updateBookInfo(book_key, bookInfo);
return bookInfoService.selectAllBookInfo();
}
@ApiOperation(value = "도서 정보 삭제", notes = "도서 정보를 삭제한다")
@DeleteMapping("/book/{book_key}")
public List<BookInfoVO> deleteBookInfo(@PathVariable String book_key) {
bookInfoService.deleteBookInfo(book_key);
return bookInfoService.selectAllBookInfo();
}
}
- 위와 같은 컨트롤러 파일입니다.
- 각 메소드 상단에 @ApiOperation 어노테이션을 추가합니다.
- value 값에 간단한 정보를 입력해줍니다.
- notes 값으로는 클릭했을 때 보일 상세 정보를 입력해줍니다.
4. Swagger UI 화면
- 위에서 설정한 대로 컨트롤러의 이름과 정보가 변경되었습니다.
- 아래로 내려가보면 메서드의 정보도 잘 입력되어 있는 것을 볼 수 있습니다.
5. Swagger UI 세부 정보 화면
- GET으로 된 도서 정보 조회를 클릭했습니다.
- 펼쳐진 화면 상단에 "도서 정보를 조회한다"라는 상세 메시지가 출력된 것을 볼 수 있습니다.
이상으로 Swagger UI의 컨트롤러의 이름 및 정보, 메소드의 이름 및 정보를 설정했습니다.
'Web Developer's Story > SPRING BOOT' 카테고리의 다른 글
[SPRING BOOT] REST API File 예제 - (2) Controller, Swagger UI (0) | 2022.03.10 |
---|---|
[SPRING BOOT] REST API File 예제 - (1) VO, Service (0) | 2022.03.07 |
[SPRING BOOT] REST API 간단 예제 - (5) Swagger UI 설정 (0) | 2022.02.25 |
[SPRING BOOT] REST API 간단 예제 - (4) Controller, Postman 출력 (0) | 2022.02.22 |
[SPRING BOOT] REST API 간단 예제 - (3) Service 만들기 (0) | 2022.02.17 |