程式碼生成工具(一)

xixinRunBoy發表於2018-03-21

Swagger系列軟體介紹

Swagger-editor介紹

Swagger-editor主要是使用yaml語法來編寫API 文件,編寫好的文件可以生成json檔案和yaml檔案,用於Swagger-generator生成程式碼,Swagger-UI線上文件生成和測試

生成json和yaml檔案示例.png
yaml語法比較簡單類似於markdown語法

Swagger-editor安裝方法

官方例子比較繁雜,介紹了各種安裝方式,看了半天才理清楚。 安裝方式一:

git clone https://github.com/swagger-api/swagger-editor.git
cd swagger-editor
npm install
npm start
複製程式碼

不知道為啥npm install獲取資料一閃而過,懷疑是翻牆問題 安裝方式二: 先下載正式釋出包下載地址,然後執行下面的命令

npm install -g http-server
http-server swagger-editor
複製程式碼

執行http-server要到swagger-editor的上一級目錄才行,不然會報找不到icon的錯誤。

Swagger-generator介紹

Swagger-generator用於將Swagger-editor生成的json檔案和yaml檔案,按照指定的模板檔案生成相應的程式碼。 各種語言生成命令可以參考bin下面的指令碼內容,指令碼里面有完整的命令格式。

安裝方式:

直接brew安裝,原始碼還要下載java依賴,編譯較麻煩

brew install swagger-codegen
複製程式碼

指令碼內容

#!/bin/sh
cd /Users/mac/Documents/MyWork/openSourceProject/swagger-codegen-master/mysource
swagger-codegen generate -t swift -i myyaml.yaml -l swift -o default
cd /Users/mac/Documents/MyWork/openSourceProject/swagger-codegen-master/mysource/default/SwaggerClient/Classes/Swaggers/Models
find * | xargs sed -i '' 's/Int32/Int/g'
find * | xargs sed -i '' 's/StringValue/stringValue/g'
find * | xargs sed -i '' 's/IntValue/intValue/g'
複製程式碼

swagger-codegen generate -t swift -i myyaml.yaml -l swift -o default

  • -t swift 表示模板資料夾,原始位置在modules/swagger-codegen/src/main/resources/swift,我是單獨拷貝出來
  • -i myyaml.yaml 表示的輸入的yaml或者json檔案
  • -l swift 表示語言是swift
  • -o default 表示輸出資料夾 最後三行命令是因為有些替代感覺模板無法完成,使用了指令碼來替代
  • find * 表示查詢當前資料夾所有檔案,xargs是引數傳遞
  • sed -i '' 's/Int32/Int/g' 查詢Int32替換成Int , /g表示全部替換

相關文章