Как изменить имя 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