POST - Создание нового местоположения
Метод POST /locations
используется для создания нового местоположения. Оно может включать такие атрибуты, как название, адрес, координаты (широта и долгота) и связанные теги. Этот метод играет важную роль в управлении местоположениями в системе.
Тело запроса
Тело запроса должно содержать необходимые данные для создаваемого местоположения. Вот пример:
Пример запроса:
{
"name": "W001",
"address": "Walmart 11,197",
"latitude": 51.0966229,
"longitude": -138.491986,
"tags": [
"tag1"
]
}
Описание полей:
- name: Название местоположения (например, "W001").
- address: Адрес местоположения (например, "Walmart 11,197").
- latitude: Координата широты (например, 51.0966229).
- longitude: Координата долготы (например, -138.491986).
- tags: Массив тегов, связанных с местоположением (например, ["tag1"]).
Успешный ответ
При успешном создании местоположения сервер возвращает статус 201 Created
и данные о новом местоположении.
Пример успешного ответа:
Код состояния: 201 Created
Тип содержимого: application/json
{
"id": "638b90c5-7965-49ae-a02b-1b190cb216db",
"name": "W001",
"address": "Walmart 11,197",
"latitude": 51.0966229,
"longitude": -138.491986,
"tags": [
"tag1"
],
"graphicPlanIds": []
}
Разбор ответа:
- id: Уникальный идентификатор нового местоположения.
- name: Название местоположения.
- address: Адрес местоположения.
- latitude: Координата широты.
- longitude: Координата долготы.
- tags: Теги, связанные с местоположением.
- graphicPlanIds: Массив идентификаторов графических планов, связанных с местоположением (изначально пустой).
Ошибки
400 Неверный запрос - Ошибка валидации
Ошибка 400 Bad Request
возникает, если в теле запроса отсутствуют обязательные поля или они содержат некорректные данные. Ответ сервера включает сообщение об ошибке и детали конкретных нарушений.
Пример тела ответа:
{
"message": "validation failed",
"code": "validation.failed",
"timestamp": "2023-03-07T05:57:59.315Z",
"details": [
{
"message": "must not be blank",
"code": "validation.notblank.failed",
"identifier": "name"
},
{
"message": "must not be empty",
"code": "validation.notemptystring.failed",
"identifier": "address"
},
{
"message": "must not be null",
"code": "validation.nonull.failed",
"identifier": "tags"
}
]
}
Объяснение:
- name: Не может быть пустым.
- address: Не может быть пустой строкой.
- tags: Не может быть
null
.
406 Недопустимый формат данных
Если формат данных запроса или ожидаемого ответа не совпадает, сервер возвращает ошибку 406 Not Acceptable
.
Пример тела ответа:
{
"message": "mismatch in the types of content",
"code": "not.acceptable",
"timestamp": "2023-03-07T05:57:59.315Z"
}
Эта ошибка указывает на то, что заголовок Content-Type
или Accept
не соответствует ожидаемому формату, обычно application/json
.
500 Внутренняя ошибка сервера
Если на сервере возникает неожиданная ошибка, он возвращает статус 500 Internal Server Error
.
Пример тела ответа:
{
"message": "internal server error",
"code": "internal.server.error",
"timestamp": "2023-03-07T05:57:59.315Z"
}
Эта ошибка обычно означает, что сервер столкнулся с непредвиденной проблемой при обработке запроса.
Заключение
Метод POST /locations
позволяет пользователям создавать новые местоположения с такими атрибутами, как название, адрес, координаты и теги. Эндпоинт включает валидацию входных данных и предоставляет подробные сообщения об ошибках для устранения возможных проблем. При успешном выполнении запроса создаётся новое местоположение, данные которого возвращаются в ответе. В случае возникновения ошибок сервер предоставляет соответствующие сообщения и коды состояния.