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.
build.gradle
 
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)  
}

Trees

2🌳

more