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

How do I change the API name in the class generated by swagger-codegen

我正在使用 swagger-springmvc and swagger-codegen 为 RESTful 网络服务生成 Java 客户端库。我已经编写了自己的 BasicJavaGenerator 扩展(见下文)来覆盖包名称,并且可以成功生成客户端库文件。生成的 "main" 个文件是:

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

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

中的 2.1.0-SNAPSHOT

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

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