Документация по 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)
Функции: