Повна документація Хорошоп API

Основна версія документації.  У випадку розбіжності між мовними версіями пріоритетною вважається документація українською мовою.


Шлюз: http(s)://<DOMAIN>/api/

Логін і пароль - необхідно створити в адмінпанелі сайту, вкладка Налаштування — Адміни.


API працює за протоколом HTTP/HTTPs. Функції передаються через адресний рядок у вигляді "http://<DOMAIN>/api/<FUNCTION>/".

Якщо сайт знаходиться на https, то необхідно звертатися до API, вказуючи протокол https.


Наприклад: https://<DOMAIN>/api/<FUNCTION>/.

Параметри для функції можна передавати двома способами:


Тип

Уточнення

Приклад

JSON POST (рекомендовано)

Необхідно передати в заголовку запиту поле Content-type: application/json, для коректної обробки даних на сервері. Параметри необхідно передавати в тілі запиту у форматі JSON{“param_1”:”1”,”param_2”:”4”}
POST (застарілий)Передається стандартно відповідно до специфікацій HTTP 1.1 (у тілі запиту). Обов'язково потрібно передавати Заголовок Content-type: multipart/form-data або Content-type: application/x-www-form-urlencodedparam_1=2&param_2=4

Назви полів і значення необхідно передавати в кодуванні UTF-8. Результат також повертається в кодуванні UTF-8.

Важливо

Під час використання кодування UTF-8 у запитах необхідно дані передавати без BOM рядка.

Для відповідей у кодуванні UTF-8 також повертається без BOM.

Також наполегливо рекомендуємо використовувати запити JSON POST з Content-type: application/json заголовком.

Починаючи з Хорошопа 3.8.0, якщо Ви віддаєте контент через JSON POST метод у кодуванні, відмінному від UTF-8, то необхідно це явно вказати в заголовку (наприклад: "Content-type: application/json; charset=windows-1251").

Якщо Вам необхідно отримати відповідь від сервера в кодуванні, відмінному від UTF-8, то також необхідно вказати заголовок Accept-Charset із зазначенням потрібного кодування (див. https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2).


Відповідь завжди повертається у форматі JSON. Містить поля:

Поле

Призначення

Опис

status

Відображає статус виконаного запиту

Можливі значення:

"OK" - виконання функції пройшло успішно;

"UNAUTHORIZED" - потрібна авторизація або не передано токен;

"AUTHORIZATION_ERROR" - помилка під час авторизації;

"EXCEPTION" - помилка сервера;

"ERROR" - будь-яка помилка (пояснення може бути в полі response.message);

"EMPTY" - немає результатів після виконання функції;

"UNDEFINED_FUNCTION" - виклик неіснуючої функції,

"HTTP_ERROR" - HTTP помилка (поле response.code містить HTTP код, response.message - пояснення до коду помилки)

response

Містить відповідь сервера залежно від статусу та функції



Приклад JSON POST запиту

POST https://foo.bar/api/func/action
Content-Type: application/json

{"param_1": "value_1", "param_2": "value_2"}


Приклад формату відповіді сервера

Пример ответа
{
	"status": "OK",
	"response": {"foo": "bar"}
}


Логи запитів і відповідей сервера доступні за адресою http://<DOMAIN>/api/logs/, для того щоб логи працювали, необхідно авторизуватися в адмін. панелі за адресою http://<DOMAIN>/edit/login.php (можна використовувати логін і пароль для api).




Функції: