Оборудование для энергетики, КИП и СИЗ Екатеринбурге
Мы рады видеть Вас на сайте ООО ТД Прибор-Энерго
Наша компания с 2006 года поставляет качественное оборудование для энергетики и приборы отечественного и импортного производства. География поставок от Калининграда до Петропавловска-Камчатского и от Мурманска до Севастополя.
За годы работы сотрудники компании приобрели большой профессиональный опыт в вопросах выбора и доставки оборудования Заказчику. Основными принципами работы компании являются:
Поставка оборудования по ценам заводов-изготовителей.
Поставка только новых отечественных и официально ввезенных в Россию приборов.
Предоставление максимально комфортных условий приобретения оборудования в нашей компании для Заказчика с учетом его пожеланий.
Популярные бренды измерительного оборудования | Ведущие позиции бренда | ||
Торговая марка, зарегистрированная АО ПриСТ. Под этой торговой маркой поставляется оборудование зарубежных производителей из Европы, Азии и Америки. Приборы производятся в соответствии с системой стандарта качества ISO-9000. Большая часть приборов проходит испытания на соответствие ГОСТ-Р и включаются в государственный реестр средств измерений РФ. |
|
||
Актаком™, Россия Торговая марка АКТАКОМ объединяет в себе широкий спектр контрольно-измерительной аппаратуры мирового класса. Все лучшее от зарубежных и российских производителей – контрольно-измерительное оборудование, паяльное оборудование, радиомонтажный инструмент, а также производство промышленной мебели для оснащения лабораторий. |
|
||
Разработка и производство приборов электробезопасности и трассоискателей серии “Сталкер”. Многопрофильное предприятие, ориентированное на выполнение самых жестких требований рынка. Высокие современные технологии, незаурядный инженерный интеллект, творческий поиск оптимальных решений. Производство сертифицировано по международной системе менеджмента качества ISO 9001. |
|
||
APPA Technology Corporation, Тайвань Основана в 1989 году. Производит широкий спектр портативных радиоэлектроизмерительных приборов: мультиметров, токовых клещей, измерителей температуры и влажности и других. Компания занимает второе место в мире по объему выпуска мультиметров и токовых клещей, уступая только компании Fluke |
|
||
Good Will Instrument Co. , Ltd.,Тайвань Основана в 1975 году и была первым на Тайване производителем профессионального контрольно-измерительного оборудования. В настоящее время компания обладает тремя заводами, расположенными на территории Тайваня, Малайзии и КНР, а также пятью представительскими офисами за пределами Тайваня — в США, Японии, Малайзии и два офиса в КНР. Поставки оборудования производятся в более чем 80 стран по всему миру |
|
||
Center Technology Corporation, Тайвань Существует с 1998 года, но имеет достаточно продолжительный опыт (более 20 лет) в разработке и дизайне электронной продукции для других известных фирм-производителей. Компания специализируется на производстве портативных измерителей температуры и влажности, пирометров, шумомеров, токоизмерительных клещей |
|
||
Shenzhen Everbest Machinery Industry Co. Ltd, Китай Основана в 1991 году. Компания является одним из ведущих китайских производителей, специализирующихся на производстве инфракрасных пирометров (термометров) и тепловизоров, использующих лазерное наведение на изучаемый объект, разнообразных тестеров для определения параметров электроэнергии и изоляции, цифровых мультиметров, токовых клещей и измерителей уровня звука и освещённости, детекторов утечки газа и огромного спектра прочей измерительной аппаратуры |
|
||
Fluke Corporation, США Со дня основания в 1948 году деятельность компании была направлена на создание и усовершенствование измерительных приборов и технологий, ставших неотъемлемой частью успешного развития производства и сферы обслуживания. Компания Fluke – мировой лидер в области современного калибровочного и измерительного оборудования, а также новаций в области измерительных технологий. Fluke является мультинациональной корпорацией со штаб квартирой в г. Эверетт, США. Производство размещено в США, Великобритании, Азии и Нидерландах. Центры продаж и обслуживания расположены в Северной и Южной Америке, Европе, Азии, Австралии. |
|
||
Keysight Technologies Inc. (Agilent Technologies 1999 г.), США В 2013 году Agilent Technologies анонсировала решение разделиться на две компании: Agilent, которая будет ориентирована на биохимический и диагностический рынки и компанию, занимающуюся электронными измерениями, получившую название Keysight Technologies. Большинство продуктовых линеек фирмы были разработаны в американской компании Hewlett-Packard, основанной в 1939 году. Компания Keysight предлагает широкий выбор электронных измерительных приборов и систем и соответствующих прикладных программ, средств автоматизированного проектирования и услуг, которые используются при проектировании, разработке, производстве, монтаже, вводе в действие и эксплуатации электронного оборудования. |
|
||
Chauvin Arnoux, Франция Основана в 1893 году в Париже (Франция). Компания зарегистрировала более 350 патентов и торговых марок. Более 5000 различных измерительных приборов от портативных до стационарного электрооборудования, от энергоэффективности и овладения всей цепочкой теплового процесса до производственной метрологии производится на ее восьми заводах в Европе и Америке, в том числе ряд уникальных устройств, не имеющих аналогов. Качество продукции подтверждается международными сертификатами ISO 9001 и ISO 14001. |
|
||
Standard Electric Works Co. LTD, Тайвань Работает с 1973 года и предлагает широкий ассортимент электроизмерительного оборудования: измерители сопротивления изоляции и заземления, измерители параметров цепей электропитания, измерители параметров УЗО, анализаторы качества электроэнергии и другие. |
|
||
SONEL S.A., Польша Компания существует с 1994 года. Продукция с маркой SONEL впервые появилась в России в 1999 году. Имея необходимые производственные и научные мощности, является разработчиком и производителем современных высококачественных измерительных приборов для электроэнергетики, электроники и сферы телекоммуникаций. Все изделия отвечают требованиям нормативных метрологических документов и имеют соответствующие национальные (MEP) и российские сертификаты. |
|
||
Testo SE & Co. KGaA, Германия Компания, основанная в 1957 году, является мировым лидером в сфере портативных и стационарных измерительных технологий для контроля параметров окружающей среды. 2500 сотрудников 32 дочерних компаний по всему миру занимаются разработкой, производством и продажей высокотехнологичных продуктов компании. Российское представительство Testo – компания Тэсто Рус вышла на рынок измерительного оборудования в 2006 году. |
|
||
Metrel dd, Словения Основана в 1957 году как фабрика по производству электрических измерительных приборов и компонентов для внутреннего рынка, со временем стала одним из ведущих мировых производителей измерительного и испытательного оборудования. Особое внимание уделяется языковой поддержке и соответствию местным стандартам для каждого конкретного рынка. |
|
Мы не наделяем приоритетом какого-либо Заказчика, каждый заказ нам важен и постараемся с честью выполнить взятые на себя обязательства по поставке. Мы дорожим своим именем и Вы можете полностью довериться нашей компании, для которой порядочность, честь и достоинство не пустые слова. За годы работы крепкие отношения сложились с рядом крупнейших холдингов России. Нам доверяют, указывая статус “Надёжный Поставщик” |
Использование | Генератор OpenAPI
Параметры для генератора OpenAPI одинаковы независимо от того, используете ли вы CLI, подключаемые модули Maven/Gradle или параметры онлайн-генерации. На этой странице демонстрируется навигация по параметрам через интерфейс командной строки. Команды представлены здесь в логической последовательности в качестве руководства, но вы можете сразу перейти к команде генерации.
help
Опция help
перечисляет все команды, доступные для интерфейса командной строки.
openapi-generator-cli help
Использование: openapi-generator-cli <команда> [<аргументы>]Наиболее часто используемые команды openapi-generator-cli:
author Утилиты для разработки генераторов или настройки шаблонов.
пакетно Генерировать код в пакетном режиме с помощью внешних конфигураций.
config-help Справка по настройке для выбранного языка
generate Сгенерировать код с помощью указанного генератора.
help Показать справочную информацию об openapi-generator
list Список доступных генераторов
meta MetaGenerator. Генератор для создания нового набора шаблонов и конфигурации для Codegen. Вывод будет основан на указанном вами языке и включает в себя шаблоны по умолчанию.
validate Подтвердить спецификацию
version Показать информацию о версии, используемой в инструментарииДополнительную информацию о конкретной команде
см. в 'openapi-generator-cli help'.
версия
Команда version предоставляет информацию о версии, возвращая либо версию по умолчанию, либо git commit sha при передаче --sha
, либо подробный вывод при передаче --full
.
ИМЯ
версия openapi-generator-cli — Показать информацию о версии, используемую в инструментарииСИНТАКСИС
версия openapi-generator-cli [--full] [--sha]ОПЦИИ
--full
Подробная информация о полной версии Команда list выводит отформатированный список всех доступных генераторов. Передайте параметр-s/--short
, если вы хотите получить вывод в формате CSV для упрощения анализа.openapi-generator-cli help list
ИМЯ
openapi-generator-cli list — Список доступных генераторовСИНТАКСИС
список openapi-generator-cli [(-i| --include )]
[(-s | --short)]ОПЦИИ
-i, --include < include>
разделенный запятыми список индексов стабильности для включения (значение:
all,beta,stable,experimental,deprecated). Исключает устаревшие по умолчанию
.-s, --short
сокращенный вывод (подходит для сценариев)
Пример:
список openapi-generator-cli -s | тр ',' '\n'
Полный список генераторов см. в Списке генераторов.
config-help
Параметр
config-help
предоставляет подробную информацию оopenapi-generator-cli help config-help
ИМЯ
openapi-generator-cli config-help - Справка по настройке для выбранного языкаСИНТАКСИС openi -generator-cli config-help
[(-f <выходной формат> | --format <выходной формат>)] [--feature-set]
[--full-details]
[(-g <имя генератора> | --generator-name <имя генератора>)]
[--import-mappings] [--instantiation-types]
[--language-specific-primitive] [--markdown-header] [--named-header]
[(-oОПЦИИ
-f <формат вывода>, --format <формат вывода>
Записать выходные файлы в нужном формате. Возможные варианты: «текст»,
«уценка» или «yamlsample». По умолчанию «текст».--feature-set
отображает набор функций, поддерживаемый генератором--full-details
отображает параметры CLI, а также другие конфигурации/сопоставления (подразумевается
--instantation-types, --reserved-words,
--language-specific-primitives, --import-mappings,
- -supporting-files)-g <имя генератора>, --generator-name <имя генератора>
генератор для получения справки по конфигурации для--import-mappings
отображает сопоставления импорта по умолчанию (типы и псевдонимы, а также
импорт они подтянут в шаблон)--instantiation-types
отображает типы, используемые для создания простых имен типов/псевдонимов--language-specific-primitive
отображает примитивы, зависящие от языка (типы, которые не требуют
дополнительного импорта или могут конфликтовать с определяемой пользователем моделью
имена)--markdown-header
Когда формат = уценка, включите эту опцию, чтобы записать заголовки уценки
(например, для docusaurus).--named-header
Заголовок включает имя генератора для ясности в выводе-o <местоположение вывода>, --output <местоположение вывода>
Необязательно писать справку в это место, в противном случае по умолчанию
стандартный вывод--reserved-words
отображает зарезервированные слова, которые могут привести к переименованию модели или
имена свойств
Следует отметить параметр
-g/--имя-генератора
(другие параметры доступны для инструментов).Вы можете передать любое имя генератора (см. команду list) в
-g
, и будут отображаться параметры, характерные для этого генератора. Некоторые генераторы имеют много вариантов , а у других может быть только несколько.Пример:
openapi-generator-cli config-help -g go
Выходные данные:
ОПЦИИ КОНФИГУРАЦИИ
packageName
Имя пакета Go (условное обозначение: нижний регистр). (По умолчанию: openapi)hideGenerationTimestamp
Скрывает отметку времени генерации при создании файлов. (По умолчанию: true)packageVersion
Версия пакета Go. (По умолчанию: 1.0.0)withGoCodegenComment
следует ли включать комментарий Go codegen, чтобы отключить Go Lint и свернуть по умолчанию в PR и различиях GitHub (по умолчанию: false)withXml
следует ли включать поддержку типа содержимого application/xml и включать аннотации XML в модель (работает с библиотеками, обеспечивающими поддержку JSON и XML) (по умолчанию: false)prependFormOrBodyParameters
Добавить параметры формы или тела в начало из списка параметров. (По умолчанию: false)
Чтобы передать эти параметры генератора клиента go команде
generate
для клиента go, используйте--additional-properties 9Вариант 0008. Пример см. в разделе команды генерации.
meta
Команда
meta
создает новый класс Java и файлы шаблонов, используемые для создания ваших собственных шаблонов.openapi-generator-cli help meta
ИМЯ
openapi-generator-cli meta - MetaGenerator. Генератор для создания нового набора шаблонов
и конфигурации для Codegen. Вывод будет основан на
указанном вами языке и включает в себя шаблоны по умолчанию.СИНТАКСИС
openapi-generator-cli meta [(-l <язык> | --language <язык>)]
[(-n <имя> | --name <имя>)]
[(-o <выходной каталог > | --output <выходной каталог>)]
[(-p <пакет> | --package <пакет>)] [(-t <тип> | --type <тип>)]ОПЦИИ
-l <язык>, --language <язык>
язык реализации для класса генератора-n <имя>, --name <имя>
человекочитаемое имя генератора-o <выходной каталог>, --output <выходной каталог>
куда записать сгенерированные файлы (по умолчанию текущий каталог)-p <пакет>, --package < package>
пакет для размещения основного класса (по умолчанию
org.openapitools.codegen)-t
, --type
тип создаваемого генератора
Для in пример глубины использования мета
9Команда 0008, см. Настройка.
validate
Команда
validate
позволяет проверить входную спецификацию, дополнительно предоставляя рекомендации по исправлению ошибок или другим улучшениям (если они доступны).openapi-generator-cli help validate
ИМЯ
openapi-generator-cli validate - Проверка спецификацииСИНТАКСИС
openapi-generator-cli validate
(-i| --input-spec ) [ --рекомендовать] ОПЦИИ
-i <файл спецификаций>, --input-spec <файл спецификаций>
расположение спецификации OpenAPI в виде URL-адреса или файла (обязательно)--recommend
.0.yaml)
openapi-generator-cli validate -i petstore-v3.0.yaml
Проверка спецификации (petstore-v3.0.yaml)
Проблем с проверкой не обнаружено.
Недопустимый пример спецификации (с использованием petstore-v3.0-invalid.yaml):
openapi-generator-cli validate -i petstore-v3.0-invalid. yaml
Проверка спецификации (petstore-v3.0-invalid.yaml)
Ошибки:
-информация об атрибутах отсутствует[ошибка] В спецификации есть 1 ошибка.
завершение
Хотя это не задокументировано в выходных данных
help
, интерфейс командной строки предлагает командузавершения
, которую можно использовать для автоматического завершения.Эта команда принимает один или несколько параметров, представляющих список аргументов, который вы в противном случае передали бы
openapi-generator
. Например:openapi-generator-cli завершение config-help
-o
--output
--named-header
-g
--generator-name
-f
--format
--markdown-header
An Пример сценария завершения bash можно найти в репозитории по адресу scripts/openapi-generator-cli-completion.bash.
generate
Команда
generate
— это рабочая лошадка набора инструментов генератора. Таким образом, он имеет намного больше доступных опций, чем предыдущие команды. Сокращенные варианты приведены ниже, но вы можете расширить полное описание.openapi-generator-cli help generategenerate OPTIONS
ИМЯ
openapi-generator-cli generate — Сгенерировать код с помощью указанного генератора
.СИНТАКСИС
openapi-generator-cli generate
[(-a <авторизация> | --auth <авторизация>)]
[--api-name-suffix <суффикс имени API>] [--api-package <пакет API >]
[--artifact-id] [--artifact-version <версия артефакта>]
[(-c <файл конфигурации> | --config <файл конфигурации>)] [--dry-run ]
[(-e <шаблонизатор> | --engine <шаблонизатор>)]
[--enable-post-process-file]
[(-g <имя генератора> | --generator-name <имя генератора> )]
[--generate-alias-as-model] [--git-host]
[--git-repo-id] [--git-user-id ]
[--global-property <глобальные свойства>...] [--group-id]
[--http-user-agent]
[(-i| --input-spec )]
[--ignore-file-override <игнорировать местоположение переопределения файла>]
[--import-mappings <сопоставления импорта>. ..]
[--instantiation-types <типы создания экземпляров>...]
[-- invoker-package]
[--language-specific-primitives <языковые примитивы>...]
[--legacy-distributor-behavior] [--library]
[--log- to-stderr] [--minimal-update]
[--model-name-prefix <префикс имени модели>]
[--model-name-suffix <суффикс имени модели>]
[--model-package <пакет модели>]
[(-o <выходной каталог> | --output <выходной каталог>)] [(-p <дополнительные свойства> | --additional-properties <дополнительные свойства>) ...]
[--package-name <имя пакета>] [--release-note <заметка о выпуске>]
[--remove-operation-id-prefix]
[--reserved-words-mappings <зарезервировано сопоставления слов>...]
[(-s | --skip-overwrite)] [--server-variables <серверные переменные>...]
[--skip-operation-example] [--skip-validate -спецификация]
[--strict-spec <истинное/ложное строгое поведение>]
[(-t <каталог шаблона> | --template-dir <каталог шаблона>)]
[--type-mappings <сопоставление типов>. .. ] [(-v | --verbose)]
OPTIONS
-a <авторизация>, --auth <авторизация>
добавляет заголовки авторизации при удаленном получении определений OpenAPI
. Передайте закодированную в URL строку name:header с запятой
, разделяющей несколько значений--api-name-suffix <суффикс имени API>
Суффикс, который будет добавлен ко всем именам API («тегам»). По умолчанию:
API. например Питомец => ПитАпи. Примечание. В настоящее время эту функцию поддерживают только генераторы ruby, python, jaxrs
.--api-package <пакет API>
пакет для сгенерированных классов API--artifact-id <идентификатор артефакта>
идентификатор_артефакта в сгенерированном pom.xml. Это также становится частью имени файла сгенерированной библиотеки
--artifact-version <версия артефакта>
версия артефакта в сгенерированном pom.xml. Это также становится частью
имя файла сгенерированной библиотеки-c <файл конфигурации>, --config <файл конфигурации>
Путь к файлу конфигурации. Это может быть JSON или YAML. Если файл JSON,
содержимое должно иметь формат {"optionKey":"optionValue",
"optionKey1":"optionValue1"...}. Если файл YAML, содержимое должно иметь формат
optionKey: optionValue. Поддерживаемые параметры могут быть
различными для каждого языка. Запустите команду config-help -g {имя генератора}
для параметров конфигурации, зависящих от языка.--dry-run
Попробуйте и сообщите о возможных изменениях (без фактического внесения изменений
).-e <шаблонизатор>, --engine <шаблонизатор>
шаблонизатор: «усы» (по умолчанию) или «рули» (бета)--enable-post-process-file
Включить файл постобработки с помощью переменных окружения.-g <имя генератора>, --generator-name <имя генератора>
генератор для использования (список см. в команде list)--generate-alias-as-model
Создать реализацию модели для псевдонимов для карт и схем массивов.
«Псевдоним» — это массив, карта или список, которые определены в документе
OpenAPI и становятся моделью в сгенерированном коде. Схема
«карта» — это объект, который может иметь необъявленные свойства, т. е. для этого объекта установлен атрибут
«дополнительные свойства». Схема «массив»
— это список подсхем в документе OAS--git-host
Git host, например. gitlab.com.--git-repo-id <идентификатор репозитория git>
Идентификатор репозитория Git, например. openapi-генератор.--git-user-id <идентификатор пользователя git>
Идентификатор пользователя Git, например. опенапитулс.--global-property <глобальные свойства>
задает указанные глобальные свойства (ранее называвшиеся «системными свойствами
») в формате имя=значение, имя=значение (или несколько параметров
, каждый с именем=значением)--group-id
groupId в сгенерированном pom.xml--http-user-agent
Пользовательский агент HTTP, например. codegen_csharp_api_client, по умолчанию
'OpenAPI-Generator/{packageVersion}/{language}'-i
, --input-spec
расположение спецификации OpenAPI в виде URL или файла (обязательно, если не загружен
через конфигурацию с использованием -c)--ignore-file-override <игнорировать расположение переопределения файла>
Указывает расположение переопределения для файла . openapi-generator-ignore
. Наиболее полезен при начальном поколении.--import-mappings <сопоставления импорта>
указывает сопоставление между данным классом и импортом, который должен использоваться для этого класса в формате type=import,type=import. У вас
также может быть несколько вхождений этой опции.--instantiation-types <типы экземпляров>
устанавливает сопоставления типов экземпляров в формате
тип=тип экземпляра, тип=тип экземпляра. Например (в Java):
array=ArrayList,map=HashMap. Другими словами, типы массивов получат
, созданные как ArrayList в сгенерированном коде. Вы также можете иметь
несколько вхождений этой опции.--invoker-package
корневой пакет для сгенерированного кода . Например:
String,boolean,Boolean,Double. Вы также можете иметь несколько
вхождений этой опции.--legacy-diversity-behavior
Установите значение false для генераторов с лучшей поддержкой дискриминаторов.
(в Python, Java, Go, PowerShell, C# это включено по умолчанию).--library
шаблон библиотеки (подшаблон)--log-to-stderr
записывать все сообщения журнала (не только ошибки) в STDOUT. Полезно для
, передающего JSON-вывод опций отладки (например, `--global-property
debugOperations`) во внешний анализатор напрямую во время тестирования генератора
.--minimal-update
Записывать только измененные выходные файлы.--model-name-prefix <префикс имени модели>
Префикс, который будет добавляться ко всем названиям моделей.--model-name-suffix <суффикс имени модели>
Суффикс, который будет добавляться ко всем именам моделей.--model-package <пакет модели>
пакет для сгенерированных моделей-o <каталог вывода>, --output <каталог вывода>
куда записать сгенерированные файлы (текущий каталог по умолчанию)-p < дополнительные свойства>, --additional-properties <дополнительные свойства
>
задает дополнительные свойства, на которые могут ссылаться шаблоны усов
в формате имя=значение,имя=значение. У вас также может быть
множественных вхождений этой опции.--package-name <имя пакета>
пакет для сгенерированных классов (где поддерживается)--release-note <примечание к выпуску>
Примечание к выпуску, по умолчанию «Незначительное обновление».--remove-operation-id-prefix
Удалить префикс OperationId, например. config_getId => получитьId--reserved-words-mappings <сопоставления зарезервированных слов>
указывает, как следует экранировать зарезервированное имя. В противном случае используется _<имя> по умолчанию
. Например, идентификатор=идентификатор. Вы также можете
иметь несколько вхождений этой опции.-s, --skip-overwrite
указывает, следует ли перезаписывать существующие файлы во время генерации
.--server-variables <переменные сервера>
устанавливает переопределение переменных сервера для документов спецификаций, которые поддерживают
переменная шаблонизация серверов.--skip-operation-example
Пропустить примеры, определенные в операциях, чтобы избежать ошибок нехватки памяти.--skip-validate-spec
Пропускает поведение по умолчанию при проверке входной спецификации.--strict-spec
Формулировки «ДОЛЖЕН» и «ДОЛЖЕН» в спецификации OpenAPI строго соблюдаются.
напр. при значении false никакие исправления не будут применяться к документам, прошедшим проверку
, но не соответствующим спецификации.-t <каталог шаблона>, --template-dir <каталог шаблона>
папка, содержащая файлы шаблонов из OpenAPIType=generatedType,OpenAPIType=generatedType.
Например: массив=список,карта=карта,строка=строка. У вас также может быть
множественных вхождений этой опции.-v, --verbose
подробный режим
Как минимум,
сгенерировать
требует:
-
-g
для указания генератора -
-o
для указания значимого выходного каталога (по умолчанию текущий каталог!) - -i для указания входной документ OpenAPI
ПРИМЕЧАНИЕ Вы также можете передать
-Dcolor
в качестве системного свойства для раскрашивания выходных данных терминала.
Примеры
В следующих примерах используется файл petstore.yaml.
Дополнительные свойства
Параметры, специфичные для генератора, должны передаваться как --additional-properties
:
openapi-generator-cli generate -g go --additional-properties=prependFormOrBodyParameters=true \
-o out -i petstore.yaml
Передача дополнительных параметров через пары ключ/значение, разделенные запятыми:
--additional-properties=key1=value1,key2=value2
Полный список параметров, специфичных для генератора, см. в документации по генераторам.
Сопоставления типов и сопоставления импорта
Большинство генераторов позволяют переназначать типы, привязанные к типам спецификации OpenAPI, на желаемые пользователем типы. Не все сопоставления типов могут быть переназначены, так как некоторые генераторы определяют сопоставления, тесно связанные со встроенными шаблонами.
Если вы не используете свои собственные шаблоны с импортом пакетов star/glob, вам, скорее всего, потребуется объединить --type-mappings
и --import-mappings
вместе.
-
--type-mappings
Определяет целевой тип пользователя -
--import-mappings
Сообщает шаблону тип для импорта изOffsetDateTime от
доLocalDateTime
:openapi-generator-cli generate \
-i petstore.yaml \
-g kotlin-spring \
-o out \
--additional-properties=library=spring-boot, beanValidations = истина, serviceImplementation = истина \
--import-mappings=DateTime=java.time.LocalDateTime \
--type-mappings=DateTime=java.time.LocalDateTime
ПРИМЕЧАНИЕ. сопоставления применяются к
DateTime
, так как это представление примитивный тип. См. DefaultCodegen.Постобработка файла
Параметр
--enable-post-process-file
позволяет определенным генераторам вызывать некоторые внешние скрипты форматирования для конкретного языка. Каждое имя файла передается индивидуально к этому внешнему сценарию, что позволяет проводить анализ, форматирование или другую индивидуальную очистку.Дополнительные сведения см. в разделе Постобработка файлов.
Целевые внешние модели
Иногда вы не хотите, чтобы генератор кода создавал для вас модель — вы можете просто включить ту, которая уже существует в вашей кодовой базе. Скажем, у вас уже есть объект
User
, и вы хотите повторно использовать его, пакет модели которого отличается от других сгенерированных файлов:Во-первых, укажите, что класс уже включен по умолчанию. Это предотвратит попытку codegen сгенерировать класс.
--language-specific-primitives=Pet
Этот параметр командной строки указывает генератору считать
Pet
"примитивным" типом.Затем, если класс
Pet
является другим пакетом, добавьте--import-mapping
, чтобы указать генератору включать этот импорт везде, где используетсяPet
:--import-mappings=Pet=com .yourpackage.models.Pet
Теперь codegen будет знать, что импортировать из этого конкретного пакета.
ПРИМЕЧАНИЕ.
import-mappings В этом примере
назначается пара ключ-значение, но несколько значений могут быть разделены запятыми. Например:--import-mappings=Pet=com.yourpackage.models.Pet,User=com.yourpackage.models.User
Файл конфигурации
Вместо того, чтобы передавать параметры генератора в CSV
-- дополнительных свойств
, вы также можете предоставить настройки через файл JSON или файл YAML.Например, один из наших образцов машинописного текста имеет следующий файл конфигурации:
{
"npmName": "@swagger/typescript-fetch-petstore",
"npmVersion": "1.0.0",
"npmRepository": "https://skimdb.npmjs.com/registry",
"snapshot": false,
"supportsES6": true
}
Эти настройки можно передать через
-c имя файла
. Здесь мы сохранили вышеуказанное какconfig.json
:openapi-generator-cli generate -i petstore.yaml -g typescript-fetch -o out \
-c config. json
Тот же файл конфигурации может быть передан в формат YAML со следующим эквивалентным содержанием:
npmName: "@swagger/typescript-fetch-petstore"
npmVersion: "1.0.0"
npmRepository: "https://skimdb.npmjs.com/registry"
моментальный снимок: false
supportsES6: true
настройки передаются точно такие же как и для
config.json
. Наиболее важной частью является расширение файла. Поддерживаемые значения:yml
илиyml
. Имя файла должно бытьconfig.yml
илиconfig.yaml
(в нашем примере это будетconfig.yaml
).openapi-generator-cli generate -i petstore.yaml -g typescript-fetch -o out \
-c config.yaml
пакет
Команда
пакет
позволяет перемещать все аргументы CLI, поддерживаемыегенерировать команду
в файл YAML или JSON.ПРИМЕЧАНИЕ : Эта команда поддерживает дополнительное свойство
!include
, которое может указывать на другой «общий» файл, базовый путь к которому может быть изменено--includes-base-dir
. Начиная с версии 5.0.0, команда!batch
поддерживает несколько свойств!include
, как последовательных, так и вложенных в другие ключи. Для поддержки нескольких свойств!include
в файле JSON имя свойства может иметь суффикс, например.!include1
,!include2
и т. д. Этот суффикс не имеет другого значения, кроме предоставления уникальных имен свойств.пакет справки openapi-generator-cli
ИМЯ
пакет openapi-generator-cli — Генерация кода в пакетном режиме через внешний
конфиг.СИНТАКСИС
пакет openapi-generator-cli [--clean] [--fail-fast]
[--includes-base-dir] [(-r | --threads )]
[--root-dir] [--timeout ] [(-v | --verbose)] [--]
... ОПЦИИ
--clean
чистый вывод ранее записанных файлов до генерации--fail-fast
fail fast при любых ошибках--includes-base-dir
базовый каталог, используемый для include-r <потоки>, --threads <потоки>
количество потоков--root-dir <корневой>
корневой каталог используемый вывод/включения (включения могут быть переопределены)--timeout <время ожидания>
выполнение тайм-аут (минуты)-v, --verbose
подробный режим--
Этот параметр можно использовать для отделения параметров командной строки от списка аргументов
(полезно, когда аргументы могут быть ошибочно приняты за
командную строку). опции<конфигурации>
Файлы конфигурации генератора.
Пример:
# создать "общую" конфигурацию
mkdir shared && cat > shared/common.yaml <inputSpec: https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules /openapi-generator/src/test/resources/3_0/petstore.yaml
AdditionalProperties:
x-ext-name: «Ваше имя»
EOF# создать вложенную «общую» конфигурацию
cat > shared/nested.yaml << EOF
useCompareNetObjects: «истина»
EOF# создать «стандартные» конфигурации
cat > kotlin.yaml <'!include': 'shared/common.yaml'
outputDir: out/kotlin
генераторИмя: kotlin
артефактИд: kotlin-petstore-string
AdditionalProperties:
dateLibrary: string
serializableModel: "true"
EOFcat > csharp.yaml <
'!include': 'shared/common.yaml'
outputDir: out/csharp-netcore
генераторИмя: csharp -netcore
дополнительные свойства:
packageGuid: "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}"
'!include': 'shared/nested. yaml'
EOF# Сгенерируйте их автор
Эта группа команд содержит утилиты для создания генераторов или настройки шаблонов.
openapi-generator-cli help author
ИМЯ
openapi-generator-cli author - Утилиты для создания генераторов или
настройки шаблонов.СИНТАКСИС
openapi-generator-cli автор
шаблон автора openapi-generator-cli [--library <библиотека>]
[(-v | --verbose)]
[(-o <каталог вывода> | --output <каталог вывода>)]
(-g <имя генератора> | --generator-name <имя генератора>)ОПЦИИ
--help
Показать справку об инструменте--version
Показать вывод полной версииКОМАНДЫ openapi-generator
template
Получить шаблоны для локальной модификацииС параметром --library, шаблон библиотеки (подшаблон)
С параметром --verbose, подробный режим
С параметром --output, куда записывать файлы шаблона (по умолчанию
'out')С Опция --generator-name, генератор для использования (см. команду list для списка
)
шаблон
Эта команда позволяет пользователю извлекать шаблоны из jar CLI, что упрощает настройку.
openapi-generator-cli справка автора шаблона
НАЗВАНИЕ
шаблон автора openapi-generator-cli - получение шаблонов для локальной модификации
ОБЗОР
шаблон автора openapi-generator-cli
(-g <имя генератора> | --generator-name <имя генератора>)
[-- library <библиотека>]
[(-o <выходной каталог> | --output <выходной каталог>)]
[(-v | --verbose)]ОПЦИИ
-g <имя генератора>, --generator- name <имя генератора>
генератор для использования (см. список в команде list)--library <библиотека>
шаблон библиотеки (подшаблон)-o <каталог вывода>, --output <каталог вывода>
куда записать файлы шаблона (по умолчанию 'out')-v , --verbose
подробный режим
Пример:
Извлечь шаблоны Java, ограничиваясь библиотекой веб-клиента
шаблон автора openapi-generator-cli -g java --library webclient
Извлечь все шаблоны Java:
шаблон автора openapi-generator-cli -g java
Настройка | Генератор OpenAPI
Шаблоны, определяемые пользователем
Наиболее распространенный сценарий пользовательской настройки — переопределение встроенных шаблонов с небольшими изменениями. Документация по этому сценарию находится на нашей странице шаблонов и отличается от пользовательских шаблонов.
До выпуска 5.0.0 всякий раз, когда пользователь хотел включить шаблоны, которые не были встроенными или не были известны генератору во время компиляции, им нужно было следовать более сложному подходу создания пользовательского генератора. как описано далее в этом документе. Начиная с версии 5.0.0, пользователь теперь может предоставлять дополнительные вспомогательные файлы и расширения для встроенных шаблонов через конфигурацию. Эта функция требует использования функции внешнего файла конфигурации.
Учтите, что вам может понадобиться добавить некоторую статическую документацию, такую как
AUTHORS.md
и пользовательский инструментальный скрипт. Вместо одного файла для определений API вам также нужен файл реализации и отдельный файл интерфейса для каждого.У вас может быть внешний файл конфигурации с именем
config.yaml
, который определяет дополнительные свойства, подобные этому, для генератора клиентовkotlin
:дополнительные свойства:
идентификатор артефакта: kotlin-petstore-client
serializableModel: "true"
dateLibrary: java8
Генерация через CLI с помощью команды:
вышеприведенный сценарий с настраиваемыми шаблонами, убедитесь, что вы указываете на свой собственный каталог шаблонов, и добавьте узел
файлов
с определениями файлов шаблонов в свою конфигурацию:templateDir: my_custom_templates
AdditionalProperties:
идентификатор артефакта: kotlin-petstore-client
serializableModel: "true"
dateLibrary: java8
files:
AUTHORS. md: {}
api_interfaces.mustache:
templateType: API
destinationFilename: Interface.kt templateType1: 9.0mustache : API
имя файла назначения: Impl.kt
другое/check.mustache:
папка: scripts
имя файла назначения: check.sh
тип шаблона: SupportingFiles
Ключи под узлом
files
— это имена файлов вашего шаблона. Они соблюдают тот же порядок разрешения, что и все остальные шаблоны.Приведенная выше конфигурация сделает следующее:
- Скопируйте
my_custom_templates/AUTHORS.md
в сгенерированный выходной каталог без обработки с помощью механизма шаблонов (из-за расширения файла шаблона). Пустое определение объекта, следующее заAUTHORS.md
, позволяет инструменту вывести имя целевого выходного файла в корне выходного каталога. - Скомпилируйте предоставленный пользователем
my_custom_templates/api_interfaces.mustache
, следуя нашей обычной логике компиляции шаблона API. То есть для каждого API будет создан один файл; API генерируются в соответствии с тегами в документации спецификации. Имя файла назначенияInterface.kt
будет выступать в качестве суффикса имени файла. Таким образом, тегEquipment
выведет соответствующийEquipmentInterface.kt
. - Поскольку
api.mustache
— это то же имя файла усов, которое используется в вашем целевом генераторе (kotlin
в этом примере), мы поддерживаем следующее:- Имя файла назначения содержит суффикс для сгенерированного вывода. API генерируются для каждого тега в вашей спецификации. Итак, тег
Оборудование
выведет соответствующийEquipmentImpl.kt
. Этот параметр будет использоваться независимо от того, нацелен лиapi.mustache
на настраиваемый пользователем шаблон или на встроенный шаблон. - Встроенный шаблон будет использоваться, если вы не предоставили настраиваемый шаблон. Генератор kotlin определяет суффикс просто как
. kt
, поэтому этот сценарий будет изменять только суффиксы сгенерированных файлов в соответствии с предыдущим пунктом. - Ваш
api.mustache
будет использоваться, если он существует в вашем пользовательском каталоге шаблонов. Для генераторов с опциями библиотеки, такими какjvm-okhttp3
в генераторе kotlin ваш файл должен находиться в том же относительном месте, что и встроенный шаблон. Для kotlin, использующего параметр библиотекиjvm-okhttp3
, этот файл должен находиться по адресуmy_custom_templates/libraries/jvm-okhttp/api.mustache
. См. шаблоны для более подробной информации.
- Имя файла назначения содержит суффикс для сгенерированного вывода. API генерируются для каждого тега в вашей спецификации. Итак, тег
- Скомпилируйте
my_custom_templates/other/check.mustache
с пакетом вспомогательных файлов и выведите вscripts/check.sh
в вашем выходном каталоге. Обратите внимание, что в настоящее время мы не поддерживаем установку файловых флагов на выходе, поэтому скрипты, подобные этим, должны быть либо получены, а не выполнены, либо иметь файловые флаги, установленные отдельно после генерации (внешние по отношению к нашему инструментарию).
Параметр
templateType
по умолчанию имеет значениеSupportingFiles
, поэтому параметрother/check.mustache
является избыточным и предоставляется для демонстрации всех параметров конфигурации файла шаблона. Доступные типы шаблонов:- API
- Apidocs
- Apitests
- Model
- Modeldocs
- Modeltests
- Supportingfiles
Обратите внимание, что пользовательские шаблоны будут объединены со встроенными определениями шаблонов. Если вспомогательный файл с путем к файлу образца шаблона существует, он будет заменен пользовательским шаблоном, в противном случае пользовательский шаблон будет добавлен в список файлов шаблонов для компиляции. Если встроенный шаблон генератора
model_docs.mustache
и вы определяетеmodel-docs. mustache
, это приведет к дублированию документов модели (еслиtargetFilename
отличается) или неопределенному поведению, поскольку какой бы шаблон ни компилировался последним, он перезапишет предыдущий. типовые документы (еслиимя_файла_назначения
соответствует расширению или суффиксу в коде генератора).Пользовательский генератор (и шаблон)
Если ни один из встроенных генераторов не соответствует вашим потребностям и вам нужно сделать больше, чем просто изменить шаблоны усов для настройки сгенерированного кода, вы можете создать совершенно новый генератор и связанные с ним шаблоны. . Генератор OpenAPI может помочь с этим, используя команду `meta`:
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar meta \
-o out/generators/my-codegen -n my-codegen -p com.my.company.codegen
Будет создан новый каталог
out/generators/my-codegen
со всеми файлами, которые вам нужно начать работу, включаяREADME. md
. После изменения и компиляции вы можете использовать свой новый codegen точно так же, как и любой другой, со своей собственной пользовательской логикой.Эти имена могут быть какими угодно. Если вы создаете клиент для языка пробелов, возможно, вам следует использовать параметры 9.0007 -o выход/генераторы/пробел -n пробел . Они могут быть одинаковыми или разными, это не имеет значения. Значение
-n
станет именем шаблона.ПРИМЕЧАНИЕ По соглашению используется оболочка кебаба для имен, переданных в
-n
. Например,scala-finatra
станетScalaFinatraGenerator
.Используйте новый генератор с CLI
Чтобы скомпилировать библиотеку, войдите в каталог
out/generators/my-codegen
, запустите0007 mvn пакет .ПРИМЕЧАНИЕ Для запуска собственного генератора необходимо добавить его в путь к классам. Это немного отличается в Windows от Unix. Если вы используете подсистему Windows для Linux или оболочку, такую как gitbash, и у вас есть проблемы с вариантом unix, попробуйте приведенный ниже синтаксис Windows.
Теперь запустите генератор:
java -cp out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar:modules/openapi-generator-cli/target/openapi-generator -cli.jar org.openapitools.codegen.OpenAPIGenerator
Для пользователей Windows вам нужно будет использовать
;
вместо:
в пути к классам, например.java -cp "out/generators/my-codegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi-generator-cli/target/openapi-generator-cli.jar" org. openapitools.codegen.OpenAPIGenerator
Обратите внимание, что
my-codegen
теперь является опцией для-g
, и вы можете использовать обычные аргументы для генерации кода:java -cp out/generators/my-codegen/ target/my-codegen-openapi-generator-1. 0.0.jar:modules/openapi-generator-cli/target/openapi-generator-cli.jar \
org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/ petstore.yaml \
-o ./out/myClient
Для пользователей Windows:
java -cp "out/codegens/customCodegen/target/my-codegen-openapi-generator-1.0.0.jar;modules/openapi -generator-cli/target/openapi-generator-cli.jar" \
org.openapitools.codegen.OpenAPIGenerator generate -g my-codegen \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
-o ./out/myClient
Используйте свой новый генератор с подключаемым модулем maven
Установите свою библиотеку в локальный репозиторий maven, выполнив:
mvn clean install -f out/generators/my-codegen
Это установит
org. openapitools:my-codegen -openapi-generator:1.0.0
в ваш локальный репозиторий maven.Вы можете использовать это как дополнительную зависимость плагина openapi-generator-maven-plugin и использовать
my-codegen
какимя генератора
значение:
org.openapitools
openapi-generator-maven-plugin
${openapi-generator-version}
generate-client-code идентификатор>
generate
my-codegen
org.openapitools
my-codegen-openapi-generator
1.0 .0версия>
Если вы публикуете свой артефакт в удаленном репозитории maven, не забудьте добавить этот репозиторий как
pluginRepository
для вашего проекта.Выборочная генерация
Вы можете не захотеть генерировать все модели в своем проекте. Точно так же вы можете захотеть написать только один или два API. В этом случае вы можете использовать системные свойства или глобальные свойства для управления выводом.
По умолчанию генерируется все, что поддерживается конкретной библиотекой. Как только вы включите функцию, она ограничит генерируемое содержимое:
# генерировать только модели
--global-property models# генерировать только API
--global-property API# генерировать только вспомогательные файлы
--global- property supportFiles# генерировать модели и вспомогательные файлы
--global-property models,supportingFiles
0003
# сгенерировать только модели User и Pet
--global-property models="User:Pet"# сгенерировать модель User и файл supportFile `StringUtil.java`:
--global-property models=User,supportingFiles= StringUtil. java
Чтобы управлять генерацией документов и тестов для API и моделей, передайте параметру false. Для API это параметры
--global-property apiTests=false,apiDocs=false
. Для моделей--global-property modelTests=false,modelDocs=false
. Эти параметры по умолчанию имеют значение true и не ограничивают создание перечисленных выше параметров функций (например,--global-property api
):# генерировать только модели (с тестами и документацией)
--global-property models# генерировать только модели (с тестами, но без документации)
--global-property models,modelDocs=false# генерировать только модели User и Pet (без тестов и без документации)
--global-property models="User:Pet ",МодельТестс=ложь# генерировать только API (без тестов)
--global-property apis,apiTests=false# генерировать только API (опция modelTests игнорируется)
--global-property APIS,modelTests=false
При использовании select поколение, будут использоваться только шаблоны, необходимые для определенного поколения.
Чтобы пропустить модели, определенные как параметры формы в «requestBody», используйте
skipFormModel
(по умолчаниюtrue
) (эта опция представлена в версиях 3.2.2 и 9).0007 true по умолчанию, начиная с v5.x).--global-property skipFormModel=true
Эта опция позволяет пропустить генерацию модели из-за параметра формы, который в OAS3 определяется иначе, так как в OAS3 нет параметра формы
Игнорировать формат файла
OpenAPI Generator поддерживает файл
.openapi-generator-ignore
, похожий на.gitignore
или.dockerignore
, с которыми вы, вероятно, уже знакомы.Файл игнорирования позволяет лучше контролировать перезапись существующих файлов, чем флаг
--skip-overwrite
. С помощью файла игнорирования вы можете указать, что отдельные файлы или каталоги могут быть проигнорированы. Это может быть полезно, например, если вам нужно только подмножество сгенерированного кода.Примеры:
# OpenAPI Generator Ignore
# Строки, начинающиеся с #, являются комментариями# Это должно соответствовать файлу build.sh, расположенному где угодно.
build.sh# Соответствует build.sh в корне
/build.sh# Рекурсивно исключить все
docs/**# Явно разрешить файлы, исключенные другими правилами
!docs/UserApi.md# Рекурсивно исключить каталоги с именем Api этот каталог.
src/**/Api/# Когда этот файл вложен в /Api (исключено выше),
# это правило игнорируется, поскольку родительский каталог исключен предыдущим правилом.
!src/**/PetApiTests.cs# Явно исключить один вложенный файл
src/Org.OpenAPITools.Test/Model/AnimalFarmTests.cs
Файл
.openapi-generator-ignore
должен существовать в корне выходного каталога.При первом создании кода вы также можете передать параметр CLI
--ignore-file-override=/path/to/ignore_file
для большего контроля над генерируемыми выходными данными. Обратите внимание, что это полное переопределение, и оно переопределит файл.openapi-generator-ignore
в выходном каталоге при повторном создании кода.Поддержка редактора файлов
.openapi-generator-ignore
доступна в IntelliJ через подключаемый модуль .ignore.Настройка генератора
Существуют различные аспекты настройки генератора кода, помимо простого создания или изменения шаблонов. У каждого языка есть поддерживающий файл конфигурации для обработки различных сопоставлений типов и т. д.:
$ ls -1 modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/
AbstractJavaJAXRSServerCodegen.java
AbstractTypeScriptClientCodegen.java
... (результаты опущены)
TypeScriptAngularClientCodegen.java
TypeScriptNodeClientCodegen.java
Каждый из этих файлов создает разумные значения по умолчанию, чтобы вы могли быстро приступить к работе. Но если вы хотите настроить имена пакетов, префиксы, папки моделей и т. д., вы можете использовать файл конфигурации json для передачи значений.
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator /src/test/resources/3_0/petstore.yaml \
-g java \
-o образцы/клиент/зоомагазин/java \
-c путь/к/config.json
и
config.json
содержит в качестве примера следующее:{
"apiPackage": "petstore"
}
Вы также можете использовать
config.yml
со следующим эквивалентным примером:apiPackage: "petstore"
Поддерживаемые параметры конфигурации могут различаться в зависимости от языка. Запуск
config-help -g {lang}
покажет доступные параметры. Эти параметры применяются через файл конфигурации (например, config.json или config.yml) или путем их передачи с помощью-p {optionName}={optionValue}
. (Если-p {optionName}
не работает, откройте тикет, и мы рассмотрим его)java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar config-help -g java
Output
CONFIG OPTIONS
modelPackage
пакет для сгенерированных моделейapiPackage
пакет для сгенерированных классов API
...... (результаты опущены)
библиотека
шаблон библиотеки (подшаблон) для использования:
jersey1 - клиент HTTP: клиент Jersey 1.18. Обработка JSON: Jackson 2.4.2
jersey2 — HTTP-клиент: Jersey client 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
— HTTP-клиент: OkHttp 2.4.0. Обработка JSON: Gson 2.3.1 (модификация 1.9.0)
модификация2 — HTTP-клиент: OkHttp 2.5.0. Обработка JSON: Gson 2.4 (модификация 2.0.0-beta2)
google-api-client — HTTP-клиент: google-api-client 1. 23.0. Обработка JSON: Jackson 2.8.9
с гарантией безопасности — HTTP-клиент: с гарантией безопасности: 4.3.0. Обработка JSON: Gson 2.8.6. Только для Java8
Ваш файл конфигурации для Java может выглядеть так:
{
"groupId":"com.my.company",
"artifactId":"MyClient",
"artifactVersion":"1.2.0" ,
"library":"feign"
}
Или, если вы предпочитаете формат yaml, он может выглядеть так:
groupId: "com.my.company"
идентификатор артефакта: "MyClient"
ArtifactVersion: "1.2.0"
библиотека: "feign"
Для всех неуказанных параметров будут использоваться значения по умолчанию.
Другой способ переопределить параметры по умолчанию — расширить класс конфигурации для определенного языка. Например, чтобы изменить префикс для сгенерированных файлов Objective-C, просто создайте подкласс пакета
ObjcClientCodegen.java
:com.mycompany.openapitools.codegen;
импорт org. openapitools.codegen.languages.*;
открытый класс MyObjcCodegen extends ObjcClientCodegen {
static {
PREFIX = "HELLO";
}
}
и укажите
Classname
при запуске генератора:-G Com.mycompany.openapitools.codegen.myobjccodegen
. Ваш подкласс теперь будет загружен и переопределяется в
quix
. суперкласс.Создание собственных моделей
Иногда вы не хотите, чтобы создавалась модель. В этом случае вы можете просто указать сопоставление импорта, чтобы сообщить кодген что не создавать. При этом каждое местоположение, которое ссылается на конкретную модель, будет вернуться к своим классам. Обратите внимание, что это может относиться не ко всем языкам...
Чтобы указать сопоставление импорта, используйте аргумент
--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
Отображение схемы пакет) с использованием опции
schemaMappings
, например. в CLIjava -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/type-alias.yaml - о /tmp/java2/ --schema-mapping TypeAlias=foo.bar.TypeAlias
Другой пример (в сочетании с --type-mappings):
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i /tmp/alias.yaml -o /tmp/alias/ --schema-mappings stream=org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody --type-mappings string+binary=stream
, а /tmp/alias.yaml следующим образом:
openapi: 3.0.3
информация:
название: демо-приложение
версия: 1.0.0
серверов:
- url: /api/v1
пути:
/demo:
получить:
резюме: Demo
operationId: demo
ответы:
'200':
описание: Demo response
content:
text/csv:
schema:
тип: строка
формат: двоичный
Именование встроенной схемы
Встроенные схемы создаются как отдельные схемы автоматически, и автоматически сгенерированное имя схемы может не всем понравиться. Можно настроить имя, используя поле
title
илипараметр inlineSchemaNameMapping
. Например, запустите следующее:java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/inline_model_resolver .yaml -o /tmp/java3/ --skip-validate-spec --inline-schema-name-mappings inline_object_2=SomethingMapped,inline_object_4=nothing_new
покажет в консоли следующее:
[main] INFO o.o. codegen.InlineModelResolver — встроенная схема, созданная как произвольный ObjectRequestBodyProperty_request. Чтобы иметь полный контроль над именем модели, задайте поле title или используйте параметр inlineSchemaNameMapping (--inline-schema-name-mappings в CLI).
[main] INFO o.o.codegen.InlineModelResolver — встроенная схема, созданная как meta_200_response. Чтобы иметь полный контроль над именем модели, задайте поле title или используйте параметр inlineSchemaNameMapping (--inline-schema-name-mappings в CLI).
Например, чтобы назвать встроенную схему
meta_200_response
какMetaObject
, используйте параметр--inline-schema-name-mappings
следующим образом:java -jar modules/openapi-generator-cli/target /openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/inline_model_resolver.yaml -o /tmp/java3/ --skip-validate-spec --inline-schema -name-mappings meta_200_response=МетаОбъект,произвольныйОбъектЗапросBodyProperty_request=ПроизвольныйЗапрос
Другой полезный параметр —
inlineSchemaNameDefaults
, который позволяет настроить суффикс автоматически сгенерированного имени встроенной схемы, например. в CLI--inline-schema-name-defaults arrayItemSuffix=_array_item,mapItemSuffix=_map_item
Примечание. В настоящее время поддерживаются только arrayItemSuffix, mapItemSuffix.
SKIP_SCHEMA_REUSE=true
— это специальное значение, позволяющее пропустить повторное использование встроенных схем.Нормализатор OpenAPI
Нормализатор OpenAPI (по умолчанию выключен) преобразует входной документ/спецификацию OpenAPI (который может не полностью соответствовать спецификации), чтобы сделать его пригодным для работы с генератором OpenAPI. Вот список поддерживаемых правил:
-
REF_AS_PARENT_IN_ALLOF
: если установлено значениеtrue
, дочерние схемы вallOf
считаются родительскими, если это$ref
(вместо встроенной схемы).
Пример:
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/allOf_extension_parent.yaml -o /tmp/java-okhttp/ --openapi-normalizer REF_AS_PARENT_IN_ALLOF=true
-
REMOVE_ANYOF_ONEOF_AND_KEEP_PROPERTIES_ONLY
: если установлено значениеtrue
, будет удалена схема oneOf/anyOf только с требуемыми свойствами только в схеме со свойствами. (пример)
Пример:
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/ removeAnyOfOneOfAndKeepPropertiesOnly_test.yaml -o /tmp/java-okhttp/ --openapi-normalizer REMOVE_ANYOF_ONEOF_AND_KEEP_PROPERTIES_ONLY=true
-
aymostify_anyof_string_and_enum_string
: при установкеTrue
, упростите любую схему с помощью строки и enum string толькоString
Пример:
Java -Jar Modules/openAp/openAp-generator-generator-generator/openapi-generator-generator/openapi-generator-generator-generator-generat -generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/simplifyAnyOfStringAndEnumString_test.yaml -o /tmp/java-okhttp/ --openapi-normalizer SIMPLIFY_ANYOF_STRING_AND_ENUM_STRING=true
-
SIMPLIFY_BOOLEAN_ENUM
: если установлено значениеtrue
, преобразовать логическое перечисление в просто перечисление.
Пример:
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/simplifyBooleanEnum_test.yaml -o /tmp/java-okhttp/ --openapi-normalizer SIMPLIFY_BOOLEAN_ENUM=true
-
SIMPLIFY_ONEOF_ANYOF
: если установлено значениеtrue
, упростите oneOf/anyOf, 1) удалив null (подсхему) и установив значение nullable вместо true, и 2) упростив oneOf/anyOf с одной подсхемой до самой подсхемы.
Пример:
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate -g java -i modules/openapi-generator/src/test/resources/3_0/simplifyOneOfAnyOf_test.yaml -o /tmp/java-okhttp/ --openapi-normalizer SIMPLIFY_ONEOF_ANYOF=true
-
KEEP_ONLY_FIRST_TAG_IN_OPERATION
: если установлено значениеtrue
, оставить в работе только первый тег, если определено более одного тега.
- Скопируйте