Swagger / OpenAPI
เขียน OpenAPI JSON ใหม่เฉพาะเมื่อมีการเปลี่ยนแปลงในการวิเคราะห์ RouterFunction และแหล่งที่มาของ handler
โหมด endpoint ฟังก์ชัน
ApiAccountRouter.java
java@Bean
public RouterFunction<ServerResponse> apiAccount(ApiAccountHandler handler) {
return route()
.nest(path("/api/account"), builder -> builder
.nest(path("/search"), search -> search
.GET("/get-detail/{accountName}", handler::getDetail)
.GET("/get-list", handler::getList)))
.build();
}รวม nested path, HTTP method และ handler method reference เพื่อสร้าง endpoint handler parser จะอนุมาน request body และ response publisher type
SwaggerJsonFileWatcher.Config
watchDirectory
src/main/java พื้นฐาน
swaggerOutputFile
ค่าเริ่มต้น src/main/resources/static/swagger.json
projectMode
ค่าเริ่มต้น FUNCTIONAL_ENDPOINT, ตัวเลือก MVC
addDecompileJar / addDecompileJarClass
การวิเคราะห์ source ของประเภท jar ภายนอก
addSourceClasspath
source/classpath สำหรับการแก้ไขสัญลักษณ์
customTypeMapper
รับ Class และ schema Map เพื่อนำ schema ที่กำหนดเองไปใช้
annotation ที่ปรับปรุงการอนุมาน
@SelectedRequestParam(
key = "pageSize",
required = false,
nullable = true,
type = Integer.class
)
Integer pageSize = request.queryParam("pageSize").map(Integer::valueOf).orElse(null);
@SelectedResponseBody(type = MemberDetailResponse.class)
Mono<MemberDetailResponse> response = service.getDetail(accountName);เขียนเฉพาะเมื่อมีการเปลี่ยนแปลง
หากผลลัพธ์การสร้างเหมือนกับ JSON ที่มีอยู่ จะไม่เปลี่ยน timestamp ของไฟล์โดยไม่จำเป็น ซึ่งจะช่วยลดการวนรอบการสร้างในโครงสร้างที่ตัวตรวจสอบด้านหน้าตรวจจับการเปลี่ยนแปลงในไฟล์ swagger.