2015-02-09 6 views
5

Ich verwende swagger-springmvc und swagger-codegen, um eine Java-Client-Bibliothek für einen RESTful Webservice zu generieren. Ich habe meine eigene Erweiterung des BasicJavaGenerator geschrieben (siehe unten), um die Paketnamen zu überschreiben, und kann die Client-Bibliotheksdateien erfolgreich generieren. Die „main“ Dateien erzeugt werden:Wie ändere ich den API-Namen in der von swagger-codegen generierten Klasse

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 

Was ich nicht finden kann, ist, wie der Name meines API, um den Code-Generator zu erhalten ApiApi.java zu MyProjectApi.java (zum Beispiel) umbenennen scheint in den Proben, die in swagger-codegen enthalten sind. Ich habe versucht, den Code-Generator-Code zu betrachten, um den API-Namen zu überschreiben, und habe auch versucht, sowohl die Swagger-JSON-Spezifikation als auch die Swagger-Springmvc-Funktionalität zu einer Option zu betrachten, um den Namen festzulegen.

Der Code-Generator:

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") 
} 

Antwort

8

Sie dieses Verhalten als solche außer Kraft setzen können:

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

wie Sie sehen, passen. Bitte beachten Sie, dass Sie ein Upgrade auf 2.1.0-SNAPSHOT in Betracht ziehen sollten, die in https://github.com/swagger-api/swagger-codegen/tree/develop_2.0

+0

Vielen Dank das funktioniert perfekt! Ich werde jetzt den 2.1.0-SNAPSHOT ausprobieren. – trf

3

Neben der akzeptierte Antwort lebt - um die Kapitalisierung Recht zu bekommen, können Sie verwenden:

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