Child pages
  • Структура API

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

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

Ядро

Code Block
lib/Abills/Api

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

# Валидации
lib/Abills/Api

...

/Validations/[sub/module].pm

Тесты

Code Block
t/Api

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

OpenAPI

Code Block
# Бандл 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 модуля

Code Block
Abills/modules/[module name]/Api.pm

Тесты Api

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

OpenAPI

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