Swagger / OpenAPI

Menulis ulang JSON OpenAPI hanya saat menganalisis RouterFunction dan sumber handler.


Mode endpoint fungsional

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();
}

Menggabungkan nested path, metode HTTP, dan referensi method handler untuk membentuk endpoint. Parser handler menyimpulkan tipe body request dan publisher response.

SwaggerJsonFileWatcher.Config

watchDirectory

src/main/java default

swaggerOutputFile

Default src/main/resources/static/swagger.json

projectMode

Default FUNCTIONAL_ENDPOINT, pilihan MVC

addDecompileJar / addDecompileJarClass

Analisis source tipe jar eksternal

addSourceClasspath

source/classpath untuk resolusi simbol

customTypeMapper

Menerima Class dan peta skema untuk menerapkan skema kustom

Anotasi untuk memperbaiki inferensi

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);

Tulis hanya jika ada perubahan

Jika hasil generasi sama dengan JSON yang ada, tidak perlu mengubah timestamp file. Ini menguntungkan untuk mengurangi loop regenerasi dalam struktur di mana watcher frontend mendeteksi perubahan file swagger.

© 2026 Byeolnaerim. Semua hak dilindungi.PengenalanKebijakan Penanganan Data Pribadi