Programing/API

Swagger Springboot 3.x Operation 설정 방법

리커니 2024. 3. 25. 09:20
반응형

Swagger Springboot 3.x Operation 설정 방법입니다.

 

Swagger 의 다양한 설정 방법은 아래의 Link를 확인하세요!

 

Link : https://aljjabaegi.tistory.com/713

 

Swagger Springboot 3.x 의존성 주입 및 Information 설정, 기본 설정

Swagger Springboot 3.x 의존성 주입 및 Information 설정, 초기 세팅 방법입니다. 의존성 추가 Gradle 에 Spring-web starter 와 Swagger dependency를 추가합니다. dependencies { implementation 'org.springframework.boot:spring-boot-sta

aljjabaegi.tistory.com

 

Link : https://aljjabaegi.tistory.com/715

 

Swagger Springboot 3.x Response 설정 방법

Swagger Springboot 3.x Response 설정 방법입니다. 초기 설정과 Operation 설정은 아래의 Link를 확인하세요. Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성 주입 및 Information 설정, 기본 설정 Swagger

aljjabaegi.tistory.com

 

Link : https://aljjabaegi.tistory.com/716

 

Swagger Springboot 3.x Spring.properties 설정 옵션

Swagger Springboot 3.x Spring.properties 설정 옵션입니다. 초기세팅 및 Information, Operation, Response 설정은 아래의 Link 를 확인하세요! Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성 주입 및 Informati

aljjabaegi.tistory.com

 

Link : https://aljjabaegi.tistory.com/717

 

Swagger Springboot 3.x JWT 인증 적용 방법

Swagger Springboot 3.x JWT 인증 적용 방법입니다. Swagger 초기 설정 및 Operation, Response, application.properties 관련 방법은 아래의 Link를 확인하세요! Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성

aljjabaegi.tistory.com

 

Link : https://aljjabaegi.tistory.com/718

 

Swagger Springboot 3.x Grouping 방법

Swagger Springboot 3.x Grouping 방법입니다. Swagger에 대한 다양한 설정 방법은 아래의 Link를 확인하세요! Link : https://aljjabaegi.tistory.com/713 Swagger Springboot 3.x 의존성 주입 및 Information 설정, 기본 설정 Swagger

aljjabaegi.tistory.com

 

Operation 설정

이제 실제 기능을 담당하는 Operation을 추가해 보겠습니다.

아래와 같이 Controller를 추가할 경우 Swagger에는 자동으로 Operation이 추가되게 됩니다.

 

MemberController.java

package com.aljjabaegi.swagger.api.domain.member;

import com.aljjabaegi.swagger.api.domain.member.record.MemberResponse;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MemberController {

    @GetMapping(value = "/members/{memberId}", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<MemberResponse> getMember(@PathVariable("memberId") String memberId) {
        return ResponseEntity.ok(new MemberResponse("geonlee", "이건"));
    }
}

 

MemberResponse.java

package com.aljjabaegi.swagger.api.domain.member.record;

public record MemberResponse(
        String memberId,
        String memberName) {
}

 

 

 

보고 개발을 할 순 있겠지만, 매우 불친절 합니다.

친절한 Operation으로 바꿔보도록 하겠습니다.

 

@RestController
@Tag(name = "[API-001] 멤버 정보 조회, 편집", description = "[담당자 : GEONLEE]")
public class MemberController {

    @GetMapping(value = "/members/{memberId}", produces = MediaType.APPLICATION_JSON_VALUE)
    @Operation(summary = "멤버 정보 조회", description = """
            # Parameters
            - memberId [멤버 ID] <font color='red'>*</font>
            - memberName [멤버 이름]
            """,
            operationId = "API-001-01"
    )
    public ResponseEntity<MemberResponse> getMember(@PathVariable("memberId")
                                                    @Parameter(name = "memberId", description = "멤버 ID", example = "geonlee")
                                                    String memberId) {
        return ResponseEntity.ok(new MemberResponse("geonlee", "이건"));
    }
}

 

operationId 가 표출 될 수 있게 application.yml 에 아래 옵션도 추가합니다.

springdoc:
  swagger-ui:
      display-operation-id: true

 

Swagger 에서 제공하는 정보 외에, 의사소통을 도울 수 있도록 OperationId와 담당자 정보도 추가하였습니다.

 

Github Swagger Project

https://github.com/aljjabaegiProgrammer/swagger-api

 

GitHub - aljjabaegiProgrammer/swagger-api: swagger API project

swagger API project. Contribute to aljjabaegiProgrammer/swagger-api development by creating an account on GitHub.

github.com

 

반응형