如何更改swagger-codegen生成的类中的API名称

时间:2015-02-09 16:52:59

标签: swagger

我正在使用swagger-springmvcswagger-codegen为RESTful Web服务生成Java客户端库。我编写了自己的BasicJavaGenerator扩展(见下文)来覆盖包名,并且可以成功生成客户端库文件。 "主要"生成的文件是:

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 spec和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")
}

2 个答案:

答案 0 :(得分:8)

您可以这样覆盖此行为:

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

如你所愿。请注意,您应该考虑升级到2.1.0-SNAPSHOT,它位于https://github.com/swagger-api/swagger-codegen/tree/develop_2.0

答案 1 :(得分:3)

除了接受的答案 - 为了获得正确的大写,你可以使用:

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