如何更改由swagger-codegen生成的类中的API名称
问题描述:
我正在使用swagger-springmvc和swagger-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")
}
答
您可以覆盖这种行为,因为这样的:
override def toApiName(name: String) = "MyProject" + name
,你认为合适。请注意,您应该考虑升级到2.1.0-SNAPSHOT,其住在https://github.com/swagger-api/swagger-codegen/tree/develop_2.0
答
除了公认的答案 - 为了获得资本的权利,你可以使用:
override def toApiName(name: String) = "MyProject" + name.capitalize
非常感谢,这完美的作品!我现在将给出2.1.0-SNAPSHOT。 – trf 2015-02-10 05:03:59