2015-02-09 186 views
5

我正在使用swagger-springmvcswagger-codegen爲RESTful Web服務生成Java客戶端庫。我已經編寫了自己的BasicJavaGenerator擴展(請參見下文)以覆蓋軟件包名稱,並且可以成功生成客戶端庫文件。所產生的「主」文件是:如何更改由swagger-codegen生成的類中的API名稱

swagger-codegen/generated-code/java/pom.xml 
swagger-codegen/generated-code/java/src/main/java/com/example/ApiApi.java 
swagger-codegen/generated-code/java/src/main/java/com/example/model/*.java 

我找不到什麼是如何設置我的API的名稱獲取代碼生成ApiApi.java重命名爲MyProjectApi.java(例如)作爲似乎在swagger-codegen包含的樣本中完成。我曾試着查看代碼生成器代碼以覆蓋api名稱,並且也嘗試在swagger json規範和swagger springmvc功能中尋找設置名稱的選項。

代碼生成器:

package com.wordnik.swagger.codegen 

import com.wordnik.swagger.codegen.BasicJavaGenerator 

object MyJavaGenerator extends BasicJavaGenerator { 
    def main(args: Array[String]) = generateClient(args) 

    // api invoker package 
    override def invokerPackage = Some("com.example.api") 

    // package for models 
    override def modelPackage = Some("com.example.api.model") 

    // package for api classes 
    override def apiPackage = Some("com.example.api") 
} 

回答

8

您可以覆蓋這種行爲,因爲這樣的:

override def toApiName(name: String) = "MyProject" + name 

,你認爲合適。請注意,您應該考慮升級到2.1.0-SNAPSHOT,其住在https://github.com/swagger-api/swagger-codegen/tree/develop_2.0

+0

非常感謝,這完美的作品!我現在將給出2.1.0-SNAPSHOT。 – trf 2015-02-10 05:03:59

3

除了公認的答案 - 爲了獲得資本的權利,你可以使用:

override def toApiName(name: String) = "MyProject" + name.capitalize 
相關問題