Файловая структура

Ядро

lib/Abills/Api

# Суброутеры ядра API
lib/Abills/Api/Paths/[sub/module].pm

# Валидации
lib/Abills/Api/Validations/[sub/module].pm

Тесты

t/Api

# тест суб/модуля
t/Api/[sub/module]/Api.t
# схемы
t/Api/[sub/module]/schemas/(admin|user)/[method_path]
  request.json - схема реквеста
  schema.json  - схема ответа

OpenAPI

# Бандл OpenAPI
misc/api/bundle_(admin|user).yaml

# Основа для бандла
misc/api/(admin|user).yaml

# Пути для субмодуля
misc/api/(admin|user)/[sub/module]/paths.yaml

# Схема для одного пути
misc/api/(admin|user)/[sub/module]/paths/[path].yaml

# Ответы для одного варианта пути
misc/api/(admin|user)/[sub/module]/paths/[method_path].yaml

# Сборщик бандла
misc/api/generate_docs.pl

Модули

 API модуля

Abills/modules/[module]/Api.pm

Тесты Api

# консольный тест
Abills/modules/[module]/t/Api.t
# схемы
Abills/modules/[module]/t/schemas/(admin|user)

OpenAPI

Abills/modules/[module name]/Api/swagger/(admin|user)