Swagger / OpenAPI
仅在分析 RouterFunction 和处理程序源时更改 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 文件更改时的重生循环。