Интерактивный обозреватель API
Обозреватель API представляет собой интерактивную страницу, где представлены все доступные ресурсы REST API, их методы, а также входные параметры и поля ответа методов.
Для осуществления запросов к API через интерактивный обозреватель необходимо зарегистрироваться в личном кабинете и произвести авторизацию API. После этого все методы будут доступны для использования.
Общая информация
- Всё API работает по протоколу HTTPS.
- Авторизация осуществляется по протоколу Token Based Authentication.
- Все данные доступны только в формате JSON.
- Базовый URL — https://cp.optimatel.ru/api/{v1}.
Требования к запросам
- К любому запросу публичного API нужно указать его текущую версию. Без этого, будет возвращаться ошибка 404 Указанная ссылка не найдена. Анонс новой версии API будет отправлен на электронную почту клиента не позднее чем за 30 дней, до момента перехода. После перехода на новую версию API, в таблице ниже будет отображена информация по срокам поддержки устаревших версий (в среднем 365 дней).
Версии API Дата выхода Дата истечения /v1 20.12.2021 текущая версия - В запросе необходимо передавать заголовок Authorization c токеном авторизации, который вы можете получить через метод auth/login. В противном случае ответом будет 401 Имя пользователя и пароль не совпадают или срок действия токена истек.
- Так же в запросе нужно передать обязательный заголовок Accept c форматом вывода данных application/json. Без этого заголовка вы получите ошибку 403 Заголовок Accept должен быть установлен.
Формат тела запроса при отправке JSON
Данные, передающиеся в теле запроса, должны удовлетворять требованиям:
- Валидный JSON (допускается передача как минифицированного варианта, так и pretty print варианта с дополнительными пробелами и сбросами строк).
- Рекомендуется использование кодировки UTF-8 без дополнительного экранирования {«name»: «Иванов Иван»}.
- Также возможно использовать ascii кодировку с экранированием {«name»: «u0418u0432u0430u043du043eu0432 u0418u0432u0430u043d»}.
- К типам данных в определённым полях накладываются дополнительные условия,описанные в каждом конкретном методе. В JSON типами данных являются string, number, boolean, null, object, array.
Так же возможно передавать данные через стандартный POST, к примеру application/x-www-form-urlencoded. Это формат для кодирования пар ключ-значение с возможностью дублирования ключей. Каждая пара ключ-значение отделяется символом &, ключ отделен от значения символом =. В ключах и значениях пробелы заменяются на знак +, и затем, используя URL-кодирование, заменяются все не буквенный-цифровые символы.
Например,
будет закодировано как
Авторизация пользователя
Полученный токен доступа необходимо передавать в заголовке Authorization в формате Bearer =Token= в каждом запросе к API. Пример заголовка:
Запросы к API будут выполняться от имени и с разрешениями пользователя, предоставившего доступ приложению. Есть возможность выпустить 2 типа токена, один безлимитный, второй на 30 дней, по истечению срока жизни которого, нужно обновить токен на новый с помощью специального метода API.
Ошибки и коды ответов
API широко использует информирование при помощи кодов ответов. Приложение должно корректно их обрабатывать.
Метод запроса | Код успешного выполнения |
---|---|
GET | 200 |
POST | 201 |
PUT | 202 |
DELETE | 200 |
При каждой ошибке, помимо кода ответа, в теле ответа может быть выдана дополнительная информация, позволяющая разработчику понять причину соответствующего ответа.
Общие ошибки сервера | Code |
---|---|
Запрос не может быть понят сервером | 400 |
Имя пользователя и пароль не совпадают или срок действия токена истек | 401 |
Доступ запрещен | 403 |
Указанная ссылка не найдена | 404 |
Указанный метод для запроса недействителен | 405 |
Указанные данные неверны | 422 |
Слишком много запросов, пожалуйста, помедленнее | 429 |
Что-то пошло не так, попробуйте позже | 500 |
Недокументированные поля и параметры запросов
В ответах и параметрах API можно найти ключи не описанные в документации. Обычно это означает, что они оставлены для совместимости со старыми версиями. Их использование не рекомендуется. Если ваше приложение использует такие ключи, перейдите на использование актуальных ключей, описанных в документации.
Лимиты на количество запросов
Существуют лимиты на количество API-запросов в минуту для всех пользователей клиента. В случае, если лимит на количество запросов будет превышен, на запрос вернется ответ с кодом 429 Слишком много запросов, пожалуйста, помедленнее, следующий запрос можно будет осуществить только через минуту. Лимит распространятся на пользователей типа «клиент» и является общим для всех пользователей клиента независимо от используемых приложений.
Информация о лимите на количество запросов данного типа, количестве оставшихся запросов до исчерпания лимита передается в специальных заголовках.
Заголовок | Описание |
---|---|
X-RateLimit-Limit | Лимит на количество запросов в минуту на данный ресурс |
X-RateLimit-Remaining | Количестве оставшихся запросов до исчерпания лимита |
Быстрый старт
Авторизуемся:
Получаем токен:
Запрашиваем список договоров:
Выбираем client_id нужного договора:
client_id может измениться, поэтому лучше вынести его в константу
Запрашиваем лицевые счета по этому договору:
Выбираем нужный account_id лицевого счета:
Интерактивный обозреватель API
Обозреватель API представляет собой интерактивную страницу, где представлены все доступные ресурсы REST API, их методы, а также входные параметры и поля ответа методов.
Для осуществления запросов к API через интерактивный обозреватель необходимо зарегистрироваться в личном кабинете и произвести авторизацию API. После этого все методы будут доступны для использования.