오늘은 발표를 대비한 회의를 했는데, 발표자료를 어떻게 할지 논의하다가 기존에 올린 s.a랑 비교해서 새로운 s.a를 만들기로 했다. 거기서 나는 api를 수정하고 와일드 프레임을 새로 만들기로 했다. 초기 기획이랑은 다르게 이것저것이 많이 추가되었기 때문이다. erd는 다른 분이 수정하기로 했다.
이것이 최종 erd이고
이것이 최종 와이어프레임이다.
작업을 끝마친 뒤엔 팀장님이 https://blog.jiniworld.me/156#a02-1 이사이트를 이용해 api화면을 다듬으라고 하셔서 그 작업에 착수했다.
1.@Tag
@Tag(name = "Album", description = "앨범 API")
이걸 컨트롤러에 넣으면 스웨거에서 album-controller이라고 나왔던 녀석이
이렇게 깔끔하게 변한다.
2.@Operation
@Operation(summary = "가게 상세 조회", description = "가게의 상세정보와 해당 가게를 보유하고 있는 회원 정보를 조회합니다.")
이걸 컨트롤러에 생성,조회 이런거마다 하나씩 넣는다.
@PreAuthorize("hasAuthority('USER')")
@Operation(summary = "앨범 삭제", description = "사용자 권한이 있는 경우 특정 앨범을 삭제합니다.")
@DeleteMapping("/{albumId}", produces = [MediaType.APPLICATION_JSON_VALUE])
fun deleteAlbum(@PathVariable albumId: Long): ResponseEntity<Unit>
{
albumService.deleteAlbum(albumId)
return ResponseEntity.status(HttpStatus.NO_CONTENT).build()
}
}
이런식으로 @operation을 넣으면
summary는 외부로 보여지는 쪽에, description은 내부에 정보가 보이게 된다.
3.@ApiResponses
그다음엔 각 컨트롤러의 생성,수정,삭제,조회등에 이런걸 넣는다.
@ApiResponses(value = [
ApiResponse(responseCode = "200", description = "멤버를 수정하였습니다."),
ApiResponse(responseCode = "403", description = "수정 권한이 없습니다."),
ApiResponse(responseCode = "404", description = "존재하지 않는 멤버입니다.")
])
이러면
이렇게 틀렸을때의 예시 화면이 뜨게 된다.
그런데 시간이 늦었으니 나머지는 주말에 하기로 하자.