Как получать заявки через 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 должно содержаться подробное
описание ошибки, которое мы залогируем для дальнейшего изучения.
Service d'assistance aux clients par UserEcho