Как изменить имя API в классе, созданном swagger-codegen
Я использую swagger-springmvc и чванство-что codegen для создания клиентской библиотеки Java для веб-службы RESTful. Я написал собственное расширение 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, так и на функциональность 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 ответов
вы можете переопределить это поведение, как например:
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