Skip to content
This repository has been archived by the owner on Sep 16, 2024. It is now read-only.

[Feat] Swagger 적용 #41

Merged
merged 8 commits into from
Jan 25, 2024
Merged

[Feat] Swagger 적용 #41

merged 8 commits into from
Jan 25, 2024

Conversation

goldentrash
Copy link
Collaborator

개요

Swagger 적용 ( close #35 )

Todo

  • Swagger 적용
  • @AccessDeviceToken@Parameter를 통한 정보 추가

논의가 필요한 사항

openAPI v3 spec에 따라 GET에는 request body를 포함하지 못한다고 합니다... 이거 해결해보려고 삽질(common/config/SwaggerConfig.kt)을 해 봤는데, 우선 text로는 request body라고 넣어주는데는 성공했으나 불충분하다면 API가 request body를 사용하지 않도록 재설계해야 할지도 모르겠네요.
image
image


등록 전 확인

  • 모든 test가 pass했나요?
  • 모든 code가 well-formatted인가요?
  • commit message는 직관적이었을까요?
  • 삭제해야 할, 주석처리 된 코드는 없을까요?

@goldentrash goldentrash self-assigned this Jan 25, 2024
@goldentrash goldentrash linked an issue Jan 25, 2024 that may be closed by this pull request
@goldentrash
Copy link
Collaborator Author

[카톡대화]

  • openAPI v3 spec에 맞게, GET이 reqeuest body를 가지지 않도록 수정하자

추가 제안

  1. 이전 결론지엇던 URL 룰에 위반되도록 URL을 설계하게 되었습니다. 그렇다면 다른 API들도 동일하게 통일해야 할까요?
  2. [Feat] WATER_CHANGE 히스토리 추가시 nextWaterDatelastWaterDate 갱신 #33 에 제가 달아둔 코멘트 내용입니다. API를 정리한다면 v1에서 지금이 마지막 기회일 것 같은데, History 등록 API 대신 Wattering 등록 API로 변경에 대해서는 어떻게 생각하시나요?

@zbqmgldjfh
Copy link
Member

zbqmgldjfh commented Jan 25, 2024

  1. 다른 URL도 통일되게 변경하죠!!
  2. 지금 Record 히스토리만 단독으로 추가되는것은 문제가 있을거같아요!!
    말해주신 것 처럼 RECORD 요청이 왔을때 추가 가능하도록 하는것이 확실히 좋을거 같아요!
    다만 History 등록 API 대신에 Record 등록(현재 이미 있음)과 Watering 등록(현재 히스토리 등록 API의 역할 중 하나)로 분화하는것도 고려해봐야 할 것 같아요는 반대입니다. 지금은 Water만 등록가능하게 해서 그렇지 사실 분갈이도 있었고, 추후 추가된 히스토리는 많다 생각됩니다.

Copy link
Collaborator Author

@goldentrash goldentrash left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recording 히스토리 직접 추가 막기와 Waterring 히스토리 추가 시 nextWaterDate 등 업데이트는 별도 PR로 진행할게요. 하나의 PR이 목적과 다르게 너무 길어지는건 아닐거같네요

@@ -29,6 +29,7 @@ data class CompanionPlantCreateRequest(
waterCycle = waterCycle,
birthDate = this.birthDate,
memberId = memberId,
plantInformationId = plantInformationId
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TEST는 어째서 통과...? 어렵다 JPA....

Copy link
Member

@zbqmgldjfh zbqmgldjfh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고 많으셨습니다~~!!

@@ -24,44 +27,57 @@ class PlantCommandApi(
private val plantService: PlantService,
) {

@Operation(summary = "반려식물 등록", description = "사용자의 반려식물을 등록/추가합니다.")
@ApiResponse(responseCode = "200", description = "등록 성공")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@securityrequirement(name = "Device-Token") 추가해주시면 감사하겠습니다!!
다른 부분도 토큰이 필요한 곳에 추가해주시면 좋을것 같아요!!

import org.springframework.web.bind.annotation.RestController
import java.time.LocalDate
import java.time.YearMonth

@RestController
@RequestMapping("/api/v1/plants")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

어떤일을 할지 다음과 같이 API 상단에도 추가해주면 클라이언트가 더 이해하기 수월할것 같아요!! @tag(name = "Plant-Query", description = "식물 정보 조회")

@goldentrash goldentrash merged commit 87f93b6 into develop Jan 25, 2024
1 check passed
@goldentrash goldentrash deleted the setting/swagger-#35 branch January 25, 2024 08:06
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Doc]: Swagger를 활용한 API 문서 생성
2 participants