我正在使用swagger-springmvc和swagger-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")
}
答案 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