1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-swagger-codegen

Клонировать/Скачать
generators-configuration.md 5.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 22.06.2025 07:22 4f083a4

Расширенная настройка генератора

Существуют различные аспекты настройки кодового генератора за рамками простого создания или изменения шаблонов. Каждый язык имеет поддерживающий конфигурационный файл для обработки различных типовых отображений и т.д.:

$ 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-swagger-codegen.git
git@api.gitlife.ru:oschina-mirror/mirrors-swagger-codegen.git
oschina-mirror
mirrors-swagger-codegen
mirrors-swagger-codegen
master