
Transclude of apiDocs
Info
restdocs를 사용하여 Controller 테스트를 통해 rest-api document를 생성.
- kotlin의 infix function을 최대한 활용하여, 사용에 용이하도록 함.
- docs 생성 시, creation-docs 문서 참고.
Dependency
testImplementation("org.springframework.restdocs:spring-restdocs-mockmvc")
Task
Docs 생성 시, generateDocs Task를 사용하면, 결과물을 확인할 수 있음.
- restDocsTest
- restDocs snippet 생성을 위한 테스트 Task
- asciidoctor
- restDocsTest를 통해 생성된 snippet을 활용하여, docs 생성 Task.
- generateDocs
- restDocsTest -> asciidoctor 두 가지 Task를 순차적으로 실행할 수 있는 Task.
tasks.register<Test>("restDocsTest") {
group = "verification"
description = "Run tests for the restDocs directory"
testClassesDirs = sourceSets["test"].output.classesDirs
classpath = sourceSets["test"].runtimeClasspath
include("**/com/example/kotlinapiserverguide/restDocs/docs/**")
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
showStandardStreams = true
}
}
val snippetsDir by extra { file("build/generated-snippets") }
val generateDocs by registering {
group = "documentation"
dependsOn("restDocsTest")
finalizedBy(asciidoctor)
}
asciidoctor {
outputs.dir(snippetsDir)
doFirst {
delete(file("src/main/resources/static/docs"))
}
inputs.dir(snippetsDir)
doLast {
copy {
from("build/docs/asciidoc")
into("src/main/resources/static/docs")
}
}}
build {
dependsOn(asciidoctor)
}
bootJar {
dependsOn(asciidoctor)
}