...
| Блок кода | ||
|---|---|---|
| ||
#**********************************************************
=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
И определяем:
| Блок кода | ||
|---|---|---|
| ||
/portal/articles:
$ref: "./paths/articles.yaml"
/portal/articles/{ID}:
$ref: "./paths/article.yaml" |
Мы записываем базисы путей, и где они определяются.
USER API
Создание роутов
Если нужно USER API, заполняем и это:
...