clean_api_codegen 0.1.2
clean_api_codegen: ^0.1.2 copied to clipboard
Clean architecture code generator for OpenAPI (REST/JSON) that produces data/domain layers.
clean_api_codegen #
Генератор data/domain слоя по OpenAPI (REST, JSON) с раскладкой по clean architecture.
Возможности #
- Генерация структуры
dataиdomainиз OpenAPI спецификации - Разбиение по сущностям: отдельные файлы для DTO/Entity/Repository/UseCase
- Поддержка query‑параметров
- Запуск одной командой, без build_runner
- Автоматическое добавление зависимостей в
pubspec.yaml(можно отключить вручную)
Установка #
Добавьте пакет в dev_dependencies.
dev_dependencies:
clean_api_codegen: ^0.1.1
Быстрый старт #
Запуск генерации:
dart run clean_api_codegen:clean_api_codegen --spec path/to/spec.yaml
Переопределить имя папки фичи:
dart run clean_api_codegen:clean_api_codegen --spec path/to/spec.yaml --feature feature_name
Структура, которую создаёт генератор #
lib/features/<feature>/
data/
models/
<entity>_dto.dart
datasources/
<entity>_remote_data_source.dart
repositories/
<entity>_repository_impl.dart
domain/
entities/
<entity>.dart
repositories/
<entity>_repository.dart
usecases/
get_<method>.dart
Как формируются имена #
<feature>берётся изinfo.titleв YAML или из имени файла, либо из--feature- DTO:
<Entity>Dto - Entity:
<Entity> - Repository:
<Entity>Repository - UseCase:
- если
operationIdесть и начинается сget, используетсяGetXxx - иначе
Get<MethodName>
- если
Что меняется в проекте #
- Генератор создаёт/перезаписывает файлы в
lib/features/<feature>/... - Добавляет зависимости в
pubspec.yaml:equatabledartzhttp
Ограничения #
- Только REST (GET/POST)
- Только
application/json - Поддерживается ответ с
dataмассивом и$refна объект - Генерация не трогает UI и DI, только data/domain