Swagger / OpenAPI
僅在分析 RouterFunction 和 handler source 後變更 OpenAPI JSON 時重新寫入。
功能端點模式
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();
}將嵌套路徑和 HTTP 方法、處理器方法引用結合起來構成端點。處理器解析器推斷請求主體和響應發布者類型。
SwaggerJsonFileWatcher.Config
watchDirectory
基本 src/main/java
swaggerOutputFile
默認 src/main/resources/static/swagger.json
projectMode
默認 FUNCTIONAL_ENDPOINT,選擇 MVC
addDecompileJar / addDecompileJarClass
外部 jar 類型的源分析
addSourceClasspath
用於符號解析的源/類路徑
customTypeMapper
接收類和模式映射以應用自定義模式
修正推斷的註解
java
@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 相同,則不會不必要地更改文件時間戳。這有助於減少前端監視器檢測 swagger 文件變更時的重生循環。