Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

API Gateway

The API gateway is accessible at http(s)://<DOMAIN>/api/

Логин и пароль –  необходимо создать в админ панели сайта, вкладка Настройки-Админы.

...

Authentication

To use the API, you need a login and password, which can be created in the site's admin panel under the Settings - Users tab.

Protocol

The API operates over HTTP/HTTPs. Functions are passed through the URL as http://<DOMAIN>/api/<FUNCTION>/.

Если сайт находится на https, то необходимо обращаться к API указывая протокол https.

Например: https://<DOMAIN>/api/<FUNCTION>/

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

...

Тип

...

Нюансы

...

Пример

...

JSON POST (рекомендуется)

...

If the site uses HTTPS, the API must be accessed via HTTPS as well.

Request Methods

TypeDetailsExample
JSON POST (Recommended)The Content-type: application/json
, для корректной обработке данных на сервере. Параметры необходимо передавать в теле запроса в формате JSON{“param_1”:”1”,”param_2”:”4”}POST (устаревший)Передается стандартно соответственно спецификациям HTTP 1.1 (в теле запроса). Обязательно нужно передавать Заголовок
field must be passed in the request header for correct data processing on the server. Parameters should be passed in the body of the request in JSON format

{"param_1":"1","param_2":"4"}

Standard POST (Deprecated)It is transmitted as standard according to HTTP 1.1 specifications (in the request body). The Content-type: multipart/form-data
или
or Content-type: application/x-www-form-urlencoded header must be passed.param_1=2&param_2=4

Названия полей и значения необходимо передавать в кодировке All field names and values should be encoded in UTF-8. Результат так-же возвращается в кодировке Responses are also returned in UTF-8 encoding.

...

titleВажно

При использовании кодировки UTF-8 в запросах необходимо данные передавать без BOM строки.

Для ответов в кодировке UTF-8 также возвращается без BOM

...

Important Notes

  • When using UTF-8 encoding in requests, data should be transmitted without the BOM line.
  • Responses are similarly returned without BOM.
  • It's strongly recommended to use JSON POST requests with Content-type:application/json

...

  • header.

Starting from Goodreads version 3.8.0 если Вы отдаете контент через JSON POST метод в кодировке отличной от UTF-8 то необходимо это явно указать в заголовке (например, if you send content via JSON POST method in encoding other than UTF-8, it is necessary to specify it explicitly in the header (for example: "Content-type: application/json; charset=windows-1251").

Если Вам необходимо получить ответ от сервера в кодировке отличной от If you need to receive a response from the server in an encoding other than UTF-8, то также необходимо указать заголовок you should also specify the Accept-Charset с указанием нужной кодировки (см. header with the required encoding (see 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 запроса.

Response Format

Responses are always in JSON format and include the following fields:

FieldMeaningDescription
statusIndicates the status of the request

Possible values:

  • "OK" (success),
  • "UNAUTHORIZED" (authorization required or token not provided),
  • "AUTHORIZATION_ERROR" (authorization error),
  • "EXCEPTION" (server error),
  • "ERROR" (general error, with details in response.message),
  • "EMPTY" (no results),
  • "UNDEFINED_FUNCTION" (nonexistent function called),
  • "HTTP_ERROR" (HTTP error, with response.code and response.message explaining the error).
responseContains the server's response, dependent on the status and function called.


JSON POST request example

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

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

Пример формата ответа сервера на запрос:Server response example

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

...

Logs

Logs of requests and server responses are available at http://<DOMAIN>/api/logs/, для того чтобы логи работали необходимо авторизовать в админ. панели по адресу . To access logs, authenticate in the admin panel at http://<DOMAIN>/edit/login.php (можно использовать логин и пароль для api) using the API login and password.


...


Функции:

Page Tree
rootDOCS:@self
startDepth3