<!-- TITLE: Руководства разработчика --> <!-- SUBTITLE: Описание функций API --> # Формирование запросов. Общие принципы. Для подробного описания отдельных функций перейдите на страницу: [Описание функций API](/developer/api/reference) * Для выполнения запросов используется протокол HTTP: * Для получения данных используются GET-запросы. * Для сохранения данных/выполнения операций используются POST-запросы. * Для выполнения большинства запросов потребуется секретный ключ, передаваемый в виде параметра api\_key. Данный ключ выдаётся разработчику администратором сервера СКАТ и не должен быть доступен третьим лицам. Пример GET-запроса (получить количество бонусов клиента по номеру телефона): curl 'http://test.scat.su/api/client/bonus/count/?api\_key=16cbaf38-5683-4a11-89dd-b8a1ffd6737f&phone=891112223344' В результате успешного запроса возвращается JSON вида: ``` { 'status': 'DONE' | 'ERROR', /\* Обязательное поле. Статус выполнения запроса. В текущей версии API может принимать два значения: 'DONE' - запрос выполнен успешно и в ответе содержится объект 'response' с результатом выполнения, 'ERROR' - запрос выполнить не удалось и в ответе содержится объект 'error' с описанием ошибки. \*/ 'debug': { /\* Необязательное поле. Информация о запросе. Возвращается, если в запросе присутствует параметр debug\_mode \*/ 'remote\_ip': 'remote\_ip', /\* Обязательное поле. IP-адрес, с которого пришёл запрос. \*/ }, response: { /\* Необязательное поле. Результат выполнения запроса. Содержимое зависит от конкретной API-функции Возвращается только при успешном запросе. \*/ }, error: { /\* Необязательное поле. Описание ошибки, возникшей в результате запроса. Возвращается, если запрос не удалось выполнить. \*/ kind: 'ERROR\_KIND', /\* Обязательное поле. Тип ошибки. В текущей версии API может принимать следующие значения: 'MISSING\_ARGUMENT' - в запросе отсутствует обязательный параметр, 'INVALID\_ARGUMENT' - один или более параметров запроса переданы неверно, 'NOT\_IMPLEMENTED' - функция не реализована на текущем сервере, 'BAD\_REQUEST' - ошибка в формате запроса, 'ACCESS\_DENIED' - недостаточно прав для выполнения запроса, 'INTERNAL\_ERROR' - внутренняя ошибка API-функции, 'NO\_DATA' - данные по запросу отсутствуют. \*/ message: 'Description' /\* Необязательное поле. Подробное описание ошибки. \*/ } } ``` Пример ответа (получить количество бонусов клиента по номеру телефона): ``` { "status": "DONE", "response": { "bonus": 0, "phone": "891112223344" } } ```