2015-02-09 59 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 
相关问题