Skip to content
Server Plugin

OpenAPI

필수 의존성: io.ktor:ktor-server-openapi

코드 예시: json-kotlinx-openapi

네이티브 서버
Ktor supports Kotlin/Native and allows you to run a server without an additional runtime or virtual machine.
지원: ✖️

Ktor를 사용하면 기존 OpenAPI 명세(specification)를 기반으로 프로젝트의 OpenAPI 문서를 생성하고 제공할 수 있습니다.

의존성 추가

  • OpenAPI 문서를 제공하려면 빌드 스크립트에 ktor-server-openapi 아티팩트를 추가해야 합니다:

    Kotlin
    Groovy
    XML
  • 선택적으로, 코드 생성기를 사용자 정의하려면 swagger-codegen-generators 의존성을 추가하세요:

    Kotlin
    Groovy
    XML

    $swagger_codegen_versionswagger-codegen-generators 아티팩트의 필요한 버전(예: 1.0.36)으로 바꿀 수 있습니다.

OpenAPI 구성

OpenAPI 문서를 제공하려면 path에 있는 문서와 함께 swaggerFile에 배치된 OpenAPI 명세에서 렌더링된 GET 엔드포인트를 생성하는 openAPI 메서드를 호출해야 합니다:

kotlin
import io.ktor.server.plugins.openapi.*

// ...
routing {
    openAPI(path="openapi", swaggerFile = "openapi/documentation.yaml")
}

이 메서드는 애플리케이션 리소스에서 OpenAPI 명세를 찾아봅니다. 그렇지 않으면 java.io.File을 사용하여 파일 시스템에서 OpenAPI 명세를 읽으려고 시도합니다.

기본적으로 문서는 StaticHtml2Codegen을 사용하여 생성됩니다. openAPI 블록 내에서 생성 설정을 사용자 정의할 수 있습니다:

kotlin
routing {
    openAPI(path="openapi", swaggerFile = "openapi/documentation.yaml") {
        codegen = StaticHtmlCodegen()
    }
}

이제 애플리케이션을 실행하고 /openapi 페이지를 열어 생성된 문서를 볼 수 있습니다.