Существуют различные аспекты настройки кодового генератора за рамками простого создания или изменения шаблонов. Каждый язык имеет поддерживающий конфигурационный файл для обработки различных типовых отображений и т.д.:
$ ls -1 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/
AbstractJavaJAXRSServerCodegen.java
AbstractTypeScriptClientCodegen.java
... (результаты опущены)
TypeScriptAngularClientCodegen.java
TypeScriptNodeClientCodegen.java
Каждый из этих файлов создает разумные значения по умолчанию, чтобы вы могли быстро запустить процесс. Но если вы хотите настроить имена пакетов, префиксы, папки моделей и т.д., вы можете использовать JSON-конфигурационный файл для передачи значений.
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-i https://petstore.swagger.io/v2/swagger.json \
-l java \
-o samples/client/petstore/java \
-c path/to/config.json
и config.json
содержит следующее в качестве примера:
{
"apiPackage": "petstore"
}
Поддерживаемые опции конфигурации могут различаться в зависимости от языка. Выполнение команды config-help -l {lang}
покажет доступные опции.
Эти опции применяются через конфигурационный файл (например, config.json) или путем передачи их с помощью java -jar swagger-codegen-cli.jar -D{optionName}={optionValue}
.
Если
-D{optionName}
не работает, пожалуйста, откройте тикет и мы рассмотрим это.```sh java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar config-help -l java
Выход
```text
ОПЦИИ КОНФИГУРАЦИИ
modelPackage
пакет для сгенерированных моделей
apiPackage
пакет для сгенерированных классов API
библиотека
шаблон библиотеки (подшаблон) для использования:
jersey1 - HTTP клиент: Jersey клиент 1.18. Обработка JSON: Jackson 2.4.2
jersey2 - HTTP клиент: Jersey клиент 2.6
feign - HTTP клиент: Netflix Feign 8.1.1. Обработка JSON: Jackson 2.6.3
okhttp-gson (по умолчанию) - HTTP клиент: OkHttp 2.4.0. Обработка JSON: Gson 2.3.1
retrofit - HTTP клиент: OkHttp 2.4.0. Обработка JSON: Gson 2.3.1 (Retrofit 1.9.0)
retrofit2 - HTTP клиент: OkHttp 2.5.0. Обработка JSON: Gson 2.4 (Retrofit 2.0.0-beta2)
google-api-client - HTTP клиент: google-api-client 1.23.0. Обработка JSON: Jackson 2.8.9
rest-assured - HTTP клиент: rest-assured 3.1.0. Обработка JSON: Gson 2.6.1. Только для Java8
Ваш конфигурационный файл для Java может выглядеть следующим образом:
{
"groupId": "com.my.company",
"artifactId": "MyClient",
"artifactVersion": "1.2.0",
"library": "feign"
}
Для всех неуказанных опций будут использоваться значения по умолчанию.
Еще один способ переопределения значений по умолчанию — расширение конфигурационного класса для конкретного языка.
Чтобы изменить, например, префикс для сгенерированных файлов Objective-C, просто создайте подкласс ObjcClientCodegen.java
:
package com.mycompany.swagger.codegen;
import io.swagger.codegen.languages.*;
public class MyObjcCodegen extends ObjcClientCodegen {
static {
PREFIX = "HELO";
}
}
```и укажите имя класса при запуске генератора:
```sh
-l com.mycompany.swagger.codegen.MyObjcCodegen
Теперь ваш подкласс будет загружен и заменит значение PREFIX
в суперклассе.
Иногда вам не требуется создание модели. В этом случае вы можете указать отображение импорта, чтобы сообщить codegen, что данную модель создавать не следует. При этом каждый раз, когда в коде упоминается конкретная модель, будет использоваться ваш класс. Обратите внимание, что это может не применимо ко всем языкам...
Чтобы указать отображение импорта, используйте аргумент --import-mappings
и укажите логику отображения модели-импорта следующим образом:
--import-mappings Pet=my.models.MyPet
Или для нескольких отображений:
--import-mappings Pet=my.models.MyPet,Order=my.models.MyOrder
или
--import-mappings Pet=my.models.MyPet --import-mappings Order=my.models.MyOrder
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )