[`\Shef\InSync\Api`] API

Обращение к внешнему API по HTTP — наследник \Shef\InSync\Api\AConnector.

Обращение к внешнему API по HTTP — наследник \Shef\InSync\Api\AConnector.

Пример смотреть в модуле shef.demosync

классчто делает
AConnectorзапрос через HttpClient ядра, разбор ответа, логирование ошибок в shef.problems
Headersмаска секретных заголовков для лога

Что пишете вы:

  • getPath() — адрес по имени функции API;
  • getModuleId() — модуль, от имени которого пишутся проблемы;
  • при необходимости processSuccess(), processError(), processError50x() — разбор ответа. Помните, что 200 — ещё не успех бизнес-логики.

\Shef\InSync\Api\AConnector::sendRequest() отправляет запрос (GET — параметры в адрес, остальные методы — телом) и возвращает Result с отправленным и полученным. Таймауты — из опций объекта: socketTimeout (30), streamTimeout (60), waitResponse (да). Значения приводятся к типам ядра: секунды — целым, waitResponse — флагом.

При ошибке запрос пишется в лог проблем. Заголовки с auth, token, key, secret, pass, cookie, session, sign, access в имени уходят туда маской (\Shef\InSync\Api\Headers::mask()); параметры — как есть, секреты в них не кладите. Ответ не 200 без ошибок соединения даёт ошибку status: <код>, а не пустую строку, как до 2.0.0.


← Импорт | ↑ Содержание | Парсинг XML →

Источник: insync/docs/3_api.md — правки туда, сайт пересобирается сам.
CtrlI