본문 바로가기
개발/Junit

⑧Junit Controller 책 리스트, 책 Search, 수정, 삭제

by 외노자개발 2022. 10. 22.
반응형

2. Book List 

	@GetMapping("/api/v1/book")
	public ResponseEntity<?> getBook() {
		BookListRespDto bookListRespDto = bookService.bookList();
		return new ResponseEntity<>(CMRespDto.builder().code(1).msg("BookList成功").body(bookListRespDto).build(), 
				HttpStatus.OK); // 200 = OK , saveした、BODYデータを一緒に戻り値に上げる
	}

먼저 @GetMapping // 은 이 URL을 넣게 되면 값을 반환 해준다. (특별히 값을 넣지 않아도)

BookList는 등록과 같은 게 많으므로 넘어 가겠습니다.!! 

 


3. Book Search

	//3. book search
	@GetMapping("/api/v1/book/{id}")
	public ResponseEntity<?> searchBook(@PathVariable Long id) {
		BookRespDto bookRespDto = bookService.booksSearch(id);
		return new ResponseEntity<>(CMRespDto.builder().code(1).msg("BookSearch成功").body(bookRespDto).build(), 
				HttpStatus.OK);
	}

여기도 Get이지만 URL Path가 마지막에 {id} 를 가지고 있습니다. 이것은 id로 값을 받기 때문이다.

@PathVariable // 이것은 방금 말한 것처럼 URL Path에서 오는 값을 말한다. 이번엔  id하나 이기 때문에 Long id를 지정하였다. 

 


4. Book Delete

	//4. book delete
	@DeleteMapping("/api/v1/book/{id}")
	public ResponseEntity<?> deleteBook(@PathVariable Long id) {
		bookService.bookDelete(id);
		return new ResponseEntity<>(CMRespDto.builder().code(1).msg("BookDelete成功").body(null).build(), 
				HttpStatus.OK);

	}

BookDelete도 특별한 것은 없으므로 패스 하겠습니다.! 

 


5. Book Update 

	//5. book Update
	@PutMapping("/api/v1/book/{id}")
	public ResponseEntity<?> updateBook(@PathVariable Long id, @RequestBody @Valid BookSaveReqDto bookSaveReqDto, 
			BindingResult bindingResult) {
		
		if(bindingResult.hasErrors()) {
			Map<String, String> errorMap = new HashMap<>();
			for (FieldError fe : bindingResult.getFieldErrors()) {
				errorMap.put(fe.getField(), fe.getDefaultMessage());
			}
			
			throw new RuntimeException(errorMap.toString()); 
		}
		
		BookRespDto bookRespDto = bookService.bookUpdate(id, bookSaveReqDto);
		return new ResponseEntity<>(CMRespDto.builder().code(1).msg("BookUpdate成功").body(bookRespDto).build(), 
				HttpStatus.OK);
	}

마지막으로 BookUpdate 이기 때문에 PutMapping을 사용 .. 

그 외에는 특별한 것이 없으므로 여기서 끝내겠습니다. 다음은 Controller Junit Test로 공부 하도록 하겠습니다. 

 

 

 

반응형

댓글