Содержание
Зачем это нужно?
В целях оптимизации скорости работы серверов Calltouch, при использовании нашего API, все методы необходимо отправлять на определенный API-сервер Calltouch, где расположен Ваш сайт. При выполнении методов API Вы можете указывать адрес API-сервера как вручную, так и использовать автоматическое определение API-адреса. Рассмотрим эти два варианта детально.
Ручное указание адреса API-сервера
Узнать этот адрес можно, выполнив 2 шага:
1. Узнать номер API-сервера, выполнив GET-запрос:
где вместо ID сайта укажите идентификатор Вашего сайта, который можно получить в настройках API личного кабинета Calltouch.
Ответ на запрос будет в формате JSON, где параметр nodeId будет содержать номер API-сервера.
2. Сформировать адрес API-сервера, используя его номер, полученный в первом шаге. Адреса API-серверов указываются в следующем формате:
где X это номер API-сервера. Из примера JSON-ответа выше, номер API-сервера равен 2, таким образом адрес API-сервера будет равен https://api-node2.calltouch.ru/.
Автоматическое определение адреса API-сервера
При обращении на API-сервер https://api.calltouch.ru/ без указания конкретного адреса API-сервера, сработает автоматический 302 редирект на необходимый адрес, который будет содержаться в http-заголовке Location. Пример того, как происходит редирект (используется программа wget):
--2017-11-16 13:56:32-- https://api.calltouch.ru/calls-service/RestAPI/12345/calls-diary/calls/1234567890/download?clientApiId=test
Resolving api.calltouch.ru (api.calltouch.ru)... 95.163.114.93
Connecting to api.calltouch.ru (api.calltouch.ru)|95.163.114.93|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://api-node3.calltouch.ru/calls-service/RestAPI/12345/calls-diary/calls/1234567890/download?clientApiId=test[following]
--2017-11-16 13:56:32-- http://api-node3.calltouch.ru/calls-service/RestAPI/12345/calls-diary/calls/1234567890/download?clientApiId=test
Resolving api-node3.calltouch.ru (api-node3.calltouch.ru)... 95.163.114.147
Connecting to api-node3.calltouch.ru (api-node3.calltouch.ru)|95.163.114.147|:80... connected.
HTTP request sent, awaiting response... 200 OK
Как видим, мы обратились напрямую к https://api.calltouch.ru/, но сайт с идентификатором 12345 находится на 3-ем API-сервере, в результате чего произошел 302 редирект на http://api-node3.calltouch.ru.
В этом случае Ваш сервер должен уметь работать с 302 редиректом, чтобы использовать запросы напрямую к https://api.calltouch.ru/ без указания конкретного адреса API-сервера.
Кол-во запросов в секунду к API Calltouch ограничено – не более 5 запросов (+5 запросов в очередь) в секунду с одного IP-адреса. Например, если в 1 секунду с одного IP-адреса поступит 11 API-запросов, то 5 выполнятся сразу, 5 поставятся в очередь, и 1 API-запрос завершится с ошибкой.
0 Комментарии