OpenAPI
필수 의존성: io.ktor:ktor-server-openapi
코드 예시: json-kotlinx-openapi
Ktor를 사용하면 기존 OpenAPI 명세(specification)를 기반으로 프로젝트의 OpenAPI 문서를 생성하고 제공할 수 있습니다. 기존 YAML 또는 JSON 명세를 제공하거나, Ktor Gradle 플러그인의 OpenAPI 확장을 사용하여 생성할 수 있습니다.
의존성 추가
OpenAPI 문서를 제공하려면 빌드 스크립트에
ktor-server-openapi아티팩트를 추가해야 합니다:KotlinGroovyXML선택적으로, 코드 생성기를 사용자 정의하려면
swagger-codegen-generators의존성을 추가하세요:KotlinGroovyXML$swagger_codegen_version을swagger-codegen-generators아티팩트의 필요한 버전(예:1.0.36)으로 바꿀 수 있습니다.
OpenAPI 구성
OpenAPI 문서를 제공하려면, swaggerFile에 배치된 OpenAPI 명세에서 렌더링되어 path에 문서를 포함하는 GET 엔드포인트를 생성하는 openAPI 메서드를 호출해야 합니다:
import io.ktor.server.plugins.openapi.*
// ...
routing {
openAPI(path="openapi", swaggerFile = "openapi/documentation.yaml")
}이 메서드는 애플리케이션 리소스에서 OpenAPI 명세를 찾아봅니다. 그렇지 않으면 java.io.File을 사용하여 파일 시스템에서 OpenAPI 명세를 읽으려고 시도합니다.
기본적으로 문서는 StaticHtml2Codegen을 사용하여 생성됩니다. openAPI 블록 내에서 생성 설정을 사용자 정의할 수 있습니다:
routing {
openAPI(path="openapi", swaggerFile = "openapi/documentation.yaml") {
codegen = StaticHtmlCodegen()
}
}이제 애플리케이션을 실행하고 /openapi 페이지를 열어 생성된 문서를 볼 수 있습니다.
