Как получать заявки через API (POST, JSON)

Для отправки заявки на подключение делаем POST-запрос на URL провайдера

Заголовок - Content-Type: application/json; charset=utf-8

Приемлемый способ аутентификации - сложный путь отправки заявки, типа https://ispserver.ua/api/r5vxtpB63NACd38y/. В крайнем случае (значительно усложняет интеграцию) - ключ-значение в теле запроса или заголовке.

Тело запроса имеет вид JSON-объекта:
{
"city": "Киев",
"mobile": "0987654321",
"name":"Имя",
 ......
}

Все поля имеют строковый тип данных, если в описании не указано другое.

Обязательные поля:
city — название города
name — имя
mobile — телефон

Необязательные поля:

street — название улицы
house — номер дома

tariff — тариф

email — адрес электронной почты
comment — комментарий, произвольная строка
lastname — фамилия

apartment — номер квартиры, произвольная строка

gps — координаты места подключения, широта и долгота

number — номер заказа

provider_name — название профиля, на который отправлена заявка


HTTP-статусы ответа:
200 OK — заявка успешно отправлена
405 Method Not Allowed — неправильный HTTP-метод запроса (допускается
только POST)
415 Unsupported Media Type — не указан или указан неправильный
заголовок Content-Type запроса (допускается только application/json;
charset=utf-8)
400 Bad Request — ошибка парсинга JSON-данных
403 Data Validation Failed — ошибка проверки данных (например, не
указано обязательное поле или улица не найдена в базе)
500 Internal Server Error — внутренняя ошибка (например, не удалось
отправить письмо)

При получении ошибки в диапазоне от 500 до 599 повторяем запрос,
такой код скажет нам о том, что данные не были обработаны сервером в
полном объеме.

Ответ в теле должен содержать JSON-объект с единственным
полем success, равным true, для успешного результата и единственным
полем error, содержащим описание ошибки, для ошибочного результата. 

Например:


{
"success": true
}

{
"error": "описание ошибки"

}

Не смотря на то, что тело ответа является корректным JSONом, оно не

будет подвергаться какой-либо машинной обработке, т.е. по
наличию или отсутствию полей или их значению мы не будем принимать какие-либо
решения в коде API-клиента — для этого есть HTTP-статус. В
ошибочном результате поле error должно содержаться подробное
описание ошибки, которое мы залогируем для дальнейшего изучения.

This article was helpful for 3 people. Is this article helpful for you?