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




Функции: