Swagger Codegen 產生器
如果預設產生器設定不符合您的需求,您可以使用各種選項來修改或建立新的模組或範本。
修改客戶端程式庫格式
不喜歡預設的 swagger 客戶端語法嗎?想要支援不同的語言嗎?沒問題!Swagger Codegen 使用 jmustache 引擎處理 mustache 範本。您可以修改我們的範本或製作自己的範本。
您可以查看 modules/swagger-codegen/src/main/resources/${your-language}
以取得範例。若要製作您自己的範本,請建立您自己的檔案,並使用 -t
旗標來指定您的範本資料夾。它實際上就是這麼容易。
製作您自己的程式碼產生模組
如果您正在使用新的語言啟動專案,並且沒有看到您需要的內容,Swagger Codegen 可以協助您建立專案以產生您自己的程式庫
1java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar meta \2 -o output/myLibrary -n myClientCodegen -p com.my.company.codegen
這會在資料夾 output/myLibrary
中寫入您開始所需的所有檔案,包括 README.md
。修改和編譯後,您可以使用程式碼產生器載入您的程式庫,並使用您自己的自訂邏輯產生客戶端。
然後,您可以使用 mvn package
在 output/myLibrary
資料夾中編譯您的程式庫,並執行程式碼產生器,如下所示
1java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar io.swagger.codegen.SwaggerCodegen
對於 Windows 使用者,您需要在類別路徑中使用 ;
而不是 :
,例如
1java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar;modules/swagger-codegen-cli/target/swagger-codegen-cli.jar io.swagger.codegen.SwaggerCodegen
請注意,現在 myClientCodegen
是一個選項,您可以使用常用的引數來產生您的程式庫
1java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar \2 io.swagger.codegen.SwaggerCodegen generate -l myClientCodegen\3 -i https://petstore.swagger.io/v2/swagger.json \4 -o myClient
另請參閱 獨立產生器開發。
從本機檔案產生客戶端
如果您不想呼叫您的伺服器,您可以將 OpenAPI 規格檔案儲存到目錄中,並將引數傳遞給程式碼產生器,如下所示
1-i ./modules/swagger-codegen/src/test/resources/2_0/petstore.json
非常適合從 Swagger 編輯器在您的 ci 伺服器上建立程式庫…或在飛機 ✈️ 上編碼時建立。
忽略檔案格式
Swagger Codegen 支援 .swagger-codegen-ignore
檔案,類似於您可能已經熟悉的 .gitignore
或 .dockerignore
。
與 --skip-overwrite
旗標相比,忽略檔案可以更好地控制覆寫現有檔案。使用忽略檔案,您可以指定可以忽略的個別檔案或目錄。如果您只需要產生程式碼的子集,這會很有用。
範例
1# Swagger Codegen Ignore2# Lines beginning with a # are comments3
4# This should match build.sh located anywhere.5build.sh6
7# Matches build.sh in the root8/build.sh9
10# Exclude all recursively11docs/**12
13# Explicitly allow files excluded by other rules14!docs/UserApi.md15
16# Recursively exclude directories named Api17# You can't negate files below this directory.18src/**/Api/19
20# When this file is nested under /Api (excluded above),21# this rule is ignored because parent directory is excluded by previous rule.22!src/**/PetApiTests.cs23
24# Exclude a single, nested file explicitly25src/IO.Swagger.Test/Model/AnimalFarmTests.cs
.swagger-codegen-ignore
檔案必須存在於輸出目錄的根目錄中。
第一次產生程式碼時,您也可以傳遞 CLI 選項 --ignore-file-override=/path/to/ignore_file
,以更好地控制產生的輸出。請注意,這是一個完整的覆寫,並且在重新產生程式碼時,會覆寫輸出目錄中的 .swagger-codegen-ignore
檔案。
IntelliJ 中透過 .ignore 外掛程式提供對 .swagger-codegen-ignore
檔案的編輯器支援。