Skip to main content

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 позволяет пользователям создавать новые местоположения с такими атрибутами, как название, адрес, координаты и теги. Эндпоинт включает валидацию входных данных и предоставляет подробные сообщения об ошибках для устранения возможных проблем. При успешном выполнении запроса создаётся новое местоположение, данные которого возвращаются в ответе. В случае возникновения ошибок сервер предоставляет соответствующие сообщения и коды состояния.