如何更改由 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
我正在使用 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