外部JARとタイプマッピング
共通モジュールhandler/DTOがソースツリーの外にある場合、decompileとカスタムスキーママッパーを使用します。
クラス基準jar追加
java
var swaggerConfig = SwaggerJsonFileWatcher.Config.builder()
.addDecompileJarClass(com.example.common.web.handler.ApiUploadHandler.class)
.build();指定されたクラスのコードソースからjarの位置を見つけ、CFRでデコンパイルしてルート/ハンドラー/タイプ分析の範囲を広げます。直接jarパスを追加する addDecompileJar も提供します。
custom type schema
java
var swaggerConfig = SwaggerJsonFileWatcher.Config.builder()
.customTypeMapper((type, schema) -> {
if (type == Long.class || type == BigDecimal.class || type == BigInteger.class) {
schema.put("type", "integer");
schema.put("format", "int64");
return true;
}
return false;
})
.build();predicateがtrueを返すと、該当するタイプのスキーマをカスタムマッピングで処理します。プロジェクトでJSONシリアル化形式とOpenAPIスキーマが異なる数値・日付ラッパーに使用できます。
sourceClasspath
symbol solverが外部ソースまたはコンパイルされたクラスを見つけられない場合、addSourceClasspathとsourceClasspathを使用します。単にインポートが存在するだけでは、パーサーがすべてのジェネリックタイプを解釈できるわけではありません。