Child pages
  • Структура API
Skip to end of metadata
Go to start of metadata

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

Ядро

Основа

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

# Валидации
Abills/Api/Validations/[submodule].pm

# Совмещаемые реализации
Abills/Api/Core/[submodule].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]/Api/(admin|user)/[controller].pm

# Валидации
Abills/modules/[module]/Validations.pm

# Список ошибок
Abills/modules/[module]/Errors.pm

# Словарь ошибок
Abills/modules/[module]/lng_english.pm

Тесты Api

# консольный тест
Abills/modules/[module]/t/Api.t

# схемы
Abills/modules/[module]/t/schemas/(admin|user)

# схемы для пути-метода
Abills/modules/[module]/t/schemas/(admin|user)/[path_method]/
  request.json - схема реквеста
  schema.json  - схема ответа

OpenAPI

# Список путей
Abills/modules/[module]/Api/swagger/(admin|user)/paths.yaml

# Описание для одного пути
Abills/modules/[module]/Api/swagger/(admin|user)/paths/[path].yaml

# Реквест, ответ схемы для одного метода-пути
Abills/modules/[module]/Api/swagger/(admin|user)/paths/[path_method].yaml

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