Повна документація Хорошоп 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-urlencoded | param_1=2¶m_2=4 |
Назви полів і значення необхідно передавати в кодуванні UTF-8. Результат також повертається в кодуванні UTF-8.
Починаючи з Хорошопа 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).
Функції: