...
Система даёт интерфейс максимально похожим на любой другой внешний вызов, с почти полной изоляцией.
Имеет почти полную совместимость з вызовами в базу данных с search_former
Пример
Code Block | ||||
---|---|---|---|---|
| ||||
use Abills::Api::Handle; # Создаём объект работы с API my $Api = Abills::Api::Handle->new($db, $admin, \%conf, { html => $html, lang => \%lang, cookies => \%COOKIES, # Если вы хотите получить JSON (например, для передачи в веб) # return_type => 'json' direct => 1 }); # GET my $uid = 147; my ($response, $status, $content_type) = $Api->call_api({ METHOD => "GET", PATH => "/users/$uid", }); # GET with query params my $uid = 147; my ($response, $status, $content_type) = $Api->call_api({ METHOD => "GET", PATH => "/users/$uid", PARAMS => \%FORM }); # POST with body my ($response, $status, $content_type) = $Api->call_api({ METHOD => "POST", PATH => "/portal/newsletter", PARAMS => \%FORM }); |
...
Code Block | ||
---|---|---|
| ||
# Код до my $payments_list_old = $Docs->invoices_list({ %LIST_PARAMS, %FORM, UNINVOICED => 1, COLS_NAME => 1, }); # Код после my ($payments_list_new) = $Api->api_call({ # Можно не указывать метод если это GET METHOD => 'GET', PATH => '/docs/invoices/', PARAMS => { %LIST_PARAMS, %FORM, UNINVOICED => 1, COLS_NAME => 1, } }); |
Но, имейте ввиду - поля приходят исключительно в lower_snake_case.
Любая функция на добавление должна мигрироваться ещё прощё:
...
- Всегда проверяйте ответ на наличие ошибки, полей errno, errstr.Проверяйте, ли после функции не берутся значения по UPPER_SNAKE_CASE, ведь Api возвращает только lower_snake_case;
- Проверяйте кейс ключей хэшмапы.