...
Code Block | ||
---|---|---|
| ||
#********************************************************** =head2 delete_portal_articles_id($path_params, $query_params) Endpoint DELETE /portal/articles/:id/ =cut #********************************************************** sub delete_portal_articles_id { my $self = shift; my ($path_params, $query_params) = @_; my $list = $Portal->portal_articles_list({ ID => $path_params->{id}, COLS_NAME => 1 }); if (!($list && scalar(@$list))) { # Не забудьте написать этот код ошибки в словаре! return $Errors->throw_error(1440002, { lang_vars => { ID => $path_params->{id} }}); } my $result = $Portal->portal_article_del({ ID => $path_params->{id} }); if (!$Portal->{errno}) { $Attachments->delete_attachment($path_params->{id}); } return $result; } |
Написание OpenAPI
Обязательная составляющая, так как нужно разработчикам узнать, как с вашим API взаимодействовать.
У нас есть микрофреймворк с работой "сверху" над ним, чтобы учитывать нашу модульность.
Помним, что в рамках определения OpenAPI модуля есть:
- Файл Api/swagger/(admin|user)/paths.yaml - основа
- Папка Api/swagger/(admin|user)/paths - определения путей
- Папка Api/swagger/(admin|user)/schemas - определения схем
Создаём файл Abills/modules/Portal/Api/swagger/admin/paths.yaml
И определяем:
Code Block | ||
---|---|---|
| ||
/portal/articles:
$ref: "./paths/articles.yaml"
/portal/articles/{ID}:
$ref: "./paths/article.yaml" |
Мы записываем базисы путей, и где они определяются.
USER API
Создание роутов
Если нужно USER API, заполняем и это:
...