[Springdoc API 작성] Annotations 사용법 정리

따용·2023년 4월 14일
0

백엔드

목록 보기
1/4

✏️ 리소스 및 경로 설명 작성

@Tag 👉 클래스를 Swagger 리소스로 표시해준다

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.v3.oas.annotations.tags.Tag;

@Controller
@RequestMapping("/v1/test")
@Tag(name = "name", description = "description")
public class ApiTokenController {
	...
}

@Operation 👉http 메서드에 대한 설명을 작성

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;

@Controller
@RequestMapping("/v1/test")
@Tag(name = "name", description = "description")
public class ApiTokenController {
	@Operation(summary = "summary test")
	@PostMapping(value = "/get")
	public String get(@RequestBody String body) throws Exception {
		...
	}
}

예시 이미지

✏️ Request Body 예제 작성

@RequestBody 👉 Request Body 값을 표시해준다.

@Content, @ExampleObject 👉 Example Value 값을 표시해준다.

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;

@Controller
@RequestMapping("/v1/test")
@Tag(name = "name", description = "description")
public class ApiTokenController {
	@Operation(summary = "summary test")
    @RequestBody(
		content = @Content(
			examples = {
				@ExampleObject("{ \"id\": \"id\" }")
			})
	)
	@PostMapping(value = "/get")
	public String get(@RequestBody String body) throws Exception {
		...
	}
}

예시 이미지

✏️ Response 예제 작성

@ApiResponse 👉 Response 값을 표시해준다.

@Content, @ExampleObject 👉 Example Value 값을 표시해준다.

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.responses.ApiResponse;

@Controller
@RequestMapping("/v1/test")
@Tag(name = "name", description = "description")
public class ApiTokenController {
	@Operation(summary = "summary test")
    @RequestBody(
		content = @Content(
			examples = {
				@ExampleObject("{ \"id\": \"id\" }")
			})
	)
    @ApiResponse(
		responseCode = "200",
		content = @Content(
			examples = {
				@ExampleObject("{ \"accessToken\": \"accessToken\" }")
			})
	)
	@PostMapping(value = "/get")
	public String get(@RequestBody String body) throws Exception {
		...
	}
}

예시이미지

profile
🤫

0개의 댓글