Skip to main content

PATCH - Обновить пользователя по ID

Описание

Эндпоинт PATCH /users/{id} используется для частичного обновления данных конкретного пользователя, идентифицированного с помощью уникального идентификатора (ID). Это позволяет изменить одно или несколько атрибутов пользователя без воздействия на остальные данные пользователя.


Аутентификация

ЗаголовокОписаниеПример
AuthorizationТокен для аутентификации.Authorization: abcdef1234567890

Примечания:

  • Токены генерируются на веб-сайте и должны быть включены в каждый запрос.
  • Токен должен быть помещен в заголовок Authorization.
  • Если токен недействителен или истек, сервер вернет ошибку аутентификации.

Параметры пути

ПараметрТипОписаниеПример
idUUIDУникальный идентификатор пользователя.be63c536-6cf3-4866-8970-37a956e3f403

Тело запроса

ПолеТипОписаниеОбязательное
firstNameстрокаИмя пользователя.Нет
middleNameстрокаОтчество пользователя.Нет
lastNameстрокаФамилия пользователя.Нет
employeeNoстрокаНомер сотрудника.Нет
employeePinстрокаPIN сотрудника.Нет
emailстрокаАдрес электронной почты пользователя.Нет
phoneстрокаНомер телефона пользователя.Нет
languageстрокаПредпочтительный язык пользователя (например, en).Нет
roleстрокаРоль, назначенная пользователю (например, ADMIN).Нет
locationIdsмассив строкСписок ID местоположений, связанных с пользователем.Нет
tagsмассив строкТеги, связанные с пользователем.Нет

Пример тела запроса:

{
"employeeNo": "1234",
"employeePin": "4321"
}

Пример запроса

PATCH /users/be63c536-6cf3-4866-8970-37a956e3f403
Authorization: abcdef1234567890
Content-Type: application/json

{
"employeeNo": "1234",
"employeePin": "4321"
}

Пример успешного ответа

Тело ответа:

{
"id": "be63c536-6cf3-4866-8970-37a956e3f403",
"firstName": "John",
"middleName": "Lee",
"lastName": "Fox",
"employeeNo": "1234",
"employeePin": "4321",
"email": "[email protected]",
"phone": "80291110099",
"language": "en",
"role": "ADMIN",
"status": "ACTIVE",
"photoId": "a7c6f740-2a42-449c-a03b-b8d36aa4709a",
"locationIds": [
"99b770c0-2396-43d3-b109-85a9d73df7b1",
"e1dfeaba-4318-4411-be91-f8af5214dd02"
],
"tags": [
"tag1",
"tag2"
],
"userLinked": true
}

Примеры ошибок

1. Ошибка валидации

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

HTTP Статус Код: 400 Bad Request

Тело ответа:

{
"message": "validation failed",
"code": "validation.failed",
"timestamp": "2023-03-07T05:57:59.315Z",
"details": [
{
"message": "must not be null",
"code": "validation.notnull.failed",
"identifier": "role"
}
]
}

Описание: Одно или несколько обязательных полей отсутствуют или содержат неверные значения.


2. Ресурс не найден

Происходит, когда пользователь с указанным ID не существует в системе.

HTTP Статус Код: 404 Not Found

Тело ответа:

{
"message": "resource wasn't found",
"code": "not.found",
"timestamp": "2023-03-07T05:57:59.315Z"
}

Описание: Пользователь с указанным ID не найден.


3. Несоответствие типа контента

Происходит, когда заголовок Content-Type в запросе не соответствует ожидаемому формату.

HTTP Статус Код: 406 Not Acceptable

Тело ответа:

{
"message": "mismatch in the types of content",
"code": "not.acceptable",
"timestamp": "2023-03-07T05:57:59.315Z"
}

Описание: Заголовок Content-Type запроса не соответствует ожидаемому типу (например, application/json).


4. Внутренняя ошибка сервера

Происходит, когда на сервере произошла непредвиденная ошибка.

HTTP Статус Код: 500 Internal Server Error

Тело ответа:

{
"message": "internal server error",
"code": "internal.server.error",
"timestamp": "2023-03-07T05:57:59.315Z"
}

Описание: Произошла ошибка на серверной стороне во время обработки запроса.


Резюме

Эндпоинт PATCH /users/{id} позволяет частично обновлять данные пользователя с использованием его уникального ID. Убедитесь, что в запросе указан действующий токен в заголовке Authorization, а тело запроса содержит правильные и корректно отформатированные данные. Обрабатывайте возможные ошибки, такие как сбои в валидации, отсутствие ресурса, несоответствие типа контента и проблемы на сервере для обеспечения стабильной работы API.