Доступно с 1.20.00
Наша система имеет некоторые надстройки, реализации сверх стандарта OpenAPI (Swagger) вследствии модульности системы.
Принцип работы
Файловая структура OpenAPI для ядра и модулей описана здесь
При запуске misc/api/generate_docs.pl
, берутся за основу файлы user.yaml
и admin.yaml
(для USER и ADMIN API сооветственно)
И проводится поиск за параметрами $ref, которые ведут к частям OpenAPI тех или иных субмодулей ядра и модулей системы.
За ними постепенно вставляется содержимое, которое потом генерируется в bundle_user.yaml
и bundle_admin.yaml
.
Примеры
Code Block | ||||
---|---|---|---|---|
| ||||
paths: $ref: "./user/user/paths.yaml" $ref: "../../Abills/modules/Internet/Api/swagger/user/paths.yaml" $ref: "../../Abills/modules/Iptv/Api/swagger/user/paths.yaml" $ref: "../../Abills/modules/Msgs/Api/swagger/user/paths.yaml" $ref: "../../Abills/modules/Abon/Api/swagger/user/paths.yaml" $ref: "../../Abills/modules/Paysys/Api/swagger/user/paths.yaml" $ref: "./user/config/paths.yaml" $ref: "./user/contacts/paths.yaml" $ref: "./user/holdup/paths.yaml" $ref: "./user/services/paths.yaml" $ref: "./user/bots/paths.yaml" $ref: "../../Abills/modules/Portal/Api/swagger/user/paths.yaml" |
Code Block | ||||
---|---|---|---|---|
| ||||
/user/portal/menu: $ref: "./paths/portal.yaml" /user/portal/news: $ref: "./paths/news.yaml" /user/portal/news/{id}: $ref: "./paths/newsId.yaml" |