2016-05-11 5 views
0

Я использую swagger-codegen для создания моих клиентских классов C#. Он выполняет эту работу, но есть несколько вещей, которые я хотел бы настроить:Пользовательские настройки Swagger-Codegen

1) Самое главное, как я могу сказать, какое пространство имен или, возможно, базовое пространство имен использовать? Сейчас все классы genned имеют пространство имен IO.Swagger.Model, как мне это изменить?

2) Все мои сгенерированные модели начинаются с I ... как в ICustomer ... есть ли способ автоповторить, что сначала я, если имя класса начинается с 2 шапок, а первая буква - это я?

3) Если 2 можно сделать, есть ли способ добавить его: IWhatever? Так что, если он пытается ген ICustomer, я хотел бы видеть:

public class Customer : ICustomer 

Можно ли это сделать?

4) На мой последний вопрос, я использую эту командную строку:

java -jar swagger-codegen-cli.jar generate 
    -i http://localhost:57772/MyService/swagger/v1/swagger.json 
    -l csharp -o C:/Code/AutoGenned/MyService 

Проблема заключается в том, что он добавляет это путь: ЦСИ \ главная \ CSharp \ IO \ Форс

Есть ли способ для меня не добавлять это в путь?

5) И, наконец, не менее важно то, что Генс 4 папки: Api, Client, Model и Properties. Есть ли способ генерировать только Client и папки Model?

ответ

3

Основываясь на получении ответа от swagger-codegen команды и мой собственный Trying вещи ouot:

1) Для того, чтобы исправить пространство имен, я должен был создать config.json файл, в основном это:

{ 
    "packageName": "My.Namespace.Whatever" 
} 

прямо сейчас моя команда запуска

java -jar swagger-codegen-cli.jar generate 
    -i http://localhost:57772/MyService/swagger/v1/swagger.json 
    -l csharp -o C:/Code/AutoGenned/MyService 
    -c config.json 

2) не удается заменить, но я могу предварять ... так что вместо того, чтобы иметь класс с именем ICustomer I де что совпало по времени ApiICustomer больше смысла ... так выше команды, я добавил

--model-name-prefix Api 

3) До сих пор не уверен, что если /, как это возможно.

4) Похоже, новое изменение спускается по трубе, что изменит, как это работает. https://github.com/swagger-api/swagger-codegen/issues/2837

5) На основании информации здесь: https://github.com/swagger-api/swagger-codegen#selective-generation Вы можете сделать это, добавив java свойства системы, как этот java -Dwhateverproperty. Таким образом, конечный результат, не включая любые исправления для # 3:

java -Dmodels -DsupportingFiles -jar swagger-codegen-cli.jar generate 
    -i http://localhost:57772/MyService/swagger/v1/swagger.json 
    -l csharp -o C:/Code/AutoGenned/MyService 
    -c C:/Code/SwaggerCodeGen/config.json 
    --model-name-prefix Api 
0

Для пункта 1), в добавлении с помощью конфигурационного файла (-c config.json),

можно также использовать параметр напрямую: -DpackageName=My.Namespace.Whatever

Смежные вопросы