Skip to content

[BE] Swagger Docs

haeyong Hahn edited this page Mar 8, 2025 · 1 revision

Swagger 문서

image


image

📖 Swagger 문서 작성법

경로

Swagger docs 문서들은 application 모듈 > 각 도메인 > controller 하위에 위치 시킵니다.

image

Production Code

controller는 swagger 문서화를 위해 controller 이름 + Docs라는 이름으로 interface를 만들고 상속받습니다(사실 굳이 docs라는 이름을 안붙여도 되지만, 통일성을 위해 요청드립니다!).

@RestController
@RequestMapping("/test/swagger")
class TestController: TestControllerDocs {
    @GetMapping
    override fun ping(): String {
        return "Pong!"
    }
}

Swagger Docs

Swagger 관련 어노테이션은 모두 interface에서 작업합니다.
이 때, 여러개의 API 가 존재하여 한 파일에 지나치게 많은 API 명세가 들어가 가독성이 떨어지는 것을 피하기 위해 각 api 들은 별도의 인터페이스로 만들고 xxxControllerDocs 가 이를 상속받습니다.

@Tag(name = "점주 Test Controller", description = "점주 Test Controller 입니다.")
interface TestControllerDocs: Ping
interface Ping {
    @Operation(
        summary = "TestApi의 예시",
        description = "TestApi 예시입니다.",
    )
    @Parameters(
        value = [
            Parameter(name = "TestParameter", description = "TestParameter 입니다."),
        ],
    )
    @ApiResponses(
        value = [
            ApiResponse(responseCode = "200", description = "OK"),
        ],
    )
    fun ping(): String
}

🏠 Home

🔙 BackEnd

🤔 요구사항 분석

요구 사항 분석 Ver.1
요구 사항 분석 Ver.2

🗳️ 프로젝트 구조

프로젝트 구조 Ver.1
프로젝트 구조 Ver.2
프로젝트 구조 Ver.3

🔀 다이어그램

◀️ 시퀀스 다이어그램
시퀀스 다이어그램 Ver.1
시퀀스 다이어그램 Ver.2

🗳️ 컴포넌트 다이어그램
컴포넌트 다이어그램 Ver.1

🏗️ 인프라 다이어그램
인프라 다이어그램 Ver.1
인프라 다이어그램 Ver.2 - dev
인프라 다이어그램 Ver.3 - prod

🔗 CI / CD

배포 파이프라인 구성 Ver.1 ‐ dev
배포 파이프라인 구성 Ver.2 - prod

🖥️ 모니터링

클라이언트 앱 서비스 Grafana 모니터링

📖 API 문서화

서버에 문서를 반영해야 프론트 개발자 분들께서 확인할 수 있는 번거로움을 줄이기 위하여 Notion 으로 API 를 문서화하도록 변경했습니다.
Swagger Docs
Notion API 문서화

❓ 문제 해결 고민

👩🏽‍🏫 멘토링 일지


O2O 개발의 민족 스토리

개발의 민족 프론트엔드 팀 :
@박용석 @전수현 @이영률 @정연희

INNER CIRCLE MVP 발표자 :
@이영률 @신용진 🥇

INNER CIRCLE 최종 발표자 :
@박용석 @신용진 🏆

Clone this wiki locally