Метод изменения водителя.
Запрос:
URL:
PATCH https://api.url/v2.1/user/<user_id>/drivers/<driver_id>
Доп. Заголовки:
Accept - для указания формата ответа. Должен быть "application/vnd.api+json", для совместимости принимается также "application/json".
Content-Type - должен быть "application/vnd.api+json".
Authorization - для передачи токена. Передается в формате: Bearer <access_token>.
Данные запроса:
Запрос отсылается в формате JSON API.
Поле | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
data | Содержит объект с описанием водителя в формате JSON API. Каждый объект водитель содержит
|
Описание атрибутов водителей.
Поле | Тип | Nullable | Описание |
---|---|---|---|
FIO | object | нет | Объект ФИО водителя. |
Licence | object | да | Объект водительское удостоверение (ВУ). |
SNILS | string | да | номер СНИЛС |
INN | string | да | номер ИНН |
IsResident | bool | нет | Водитель является резидентом страны, в которой работает |
DismissalDate | date | да | Дата увольнения |
DateOfCreation | datetime | нет | Дата создания (нельзя изменять, игнорируется сервером) |
UpdateDate | datetime | нет | Дата обновления (игнорируется сервером, обновляется автоматически) |
Объект ФИО водителя
Поле | Тип | Nullable | Описание |
---|---|---|---|
LastName | string | да | Фамилия |
FirstName | string | да | Имя |
Patronymic | string | да | Отчество |
В ФИО всегда должно быть хотя бы одно непустое (не null и не "") поле.
Объект водительское удостоверение (ВУ)
Поле | Тип | Nullable | Описание |
---|---|---|---|
DrivingLicence | string | да | номер удостоверения |
DrivingLicenceCategory | string | да | категория или несколько категорий. В текущей версии это просто текстовое поле. |
DrivingLicenceIssueDate | datetime | да | когда выдано |
DrivingLicenceExpireDate | datetime | да | когда завершается |
Если Licence не null, то в объекте должно быть хотя бы одно не пустое поле.
Описание связанных с водителем объектов:
Поле | Тип | Nullable | |
---|---|---|---|
Phones | array<phone> | нет | Список телефонов водителя. Если в Phones передать массив ссылок на телефоны, то должны будут остаться только переданные телефоны. Переданный массив может содержать только те телефоны которые уже привязаны к водителю (нельзя добавить новый телефон от другого водителя, можно только удалить 1 или несколько текущий телефонов данного водителя). При передаче пустого массива должны удалиться все телефоны. |
Addresses | array<address> | нет | Адреса водителя |
Emails | array<email> | нет | Email водителя |
Owner | object<user> | нет | Кому принадлежит водитель Нельзя редактировать. |
DriverKey | object<driverKey> | да | Ключ водителя |
Counteragent | object<counteragent> | да | Организация водителя |
Коды ответов:
200 OK - Сервер изменил водителя. В теле ответа содержится обновлённое описание водителя.
401 Unauthorized - не передан заголовок Authorization, либо токен не корректный, либо окончился период действия.
403 Forbidden - нет прав на редактирование.
400 Bad Request - Переданы неподдерживаемые параметры, либо сервер не понял запрос (описание ошибки в теле ответа).
Пример:
Изменение только лицензии.
PATCH https://api.url/user/1/drivers/1 Accept: application/vnd.api+json Content-Type: application/vnd.api+json Authorization: Bearer <auth token> { "data": { "id": "1", "type": "driver", "attributes": { "Licence":{ "DrivingLicence": "ADSF123123", "DrivingLicenceCategory": "BCDE", "DrivingLicenceIssueDate": "2017-03-20", "DrivingLicenceExpireDate": "2027-03-20" } } } } HTTP/1.1 200 OK Content-Type: application/vnd.api+json { "links":{ "self": "https://api.url/v2.1/user/1/drivers/1" }, "data": { "id": "1", "type": "driver", "attributes": { "FIO": { "LastName": "Бэггинс", "FirstName": "Фродо", "Patronymic": null }, "Licence":{ "DrivingLicence": "ADSF123123", "DrivingLicenceCategory": "BCDE", "DrivingLicenceIssueDate": "2017-03-20", "DrivingLicenceExpireDate": "2027-03-20" }, "SNILS": null, "INN": null, "IsResident": true, "DismissalDate": "2022-01-01", "DateOfCreation": "2022-05-11T11:56:41Z", "UpdateDate": "2022-05-11T11:56:41Z" }, "relationships":{ "Counteragent": { "data": { "type": "counteragent", "id": 1 } }, "Owner": { "data": { "type": "user": "id": 1}, }, "Phones": { "data": [ { "type": "phone", "id": "1" }, { "type": "phone", "id": "2" }, { "type": "phone", "id": "3" } ] }, "Addresses": { "data": [] }, "Emails": { "data": [] }, "DriverKey": { "data": { "type": "driverKey", "id": 123 } } } } }
Удаление всех телефонов и изменение имени.
PATCH https://api.url/user/1/drivers/1 Accept: application/vnd.api+json Content-Type: application/vnd.api+json Authorization: Bearer <auth token> { "data": { "id": "1", "type": "driver", "attributes": { "FIO":{ "FirstName": "Фёдор" } }, "relationships":{ "Phones": { "data": [] } } } } HTTP/1.1 200 OK Content-Type: application/vnd.api+json { "links":{ "self": "https://api.url/v2.1/user/1/drivers/1" }, "data": { "id": "1", "type": "driver", "attributes": { "FIO": { "LastName": "Бэггинс", "FirstName": "Фёдор", "Patronymic": null }, "Licence":{ "DrivingLicence": "ADSF123123", "DrivingLicenceCategory": "BCDE", "DrivingLicenceIssueDate": "2009-03-20", "DrivingLicenceExpireDate": "2019-03-20" }, "SNILS": null, "INN": null, "IsResident": true, "DismissalDate": "2022-01-01", "DateOfCreation": "2022-05-11T11:56:41Z", "UpdateDate": "2022-05-11T11:56:41Z" }, "relationships":{ "Owner": { "data": { "type": "user": "id": 1}, }, "Phones": { "data": [] }, "Addresses": { "data": [] }, "Emails": { "data": [] }, "DriverKey": { "data": { "type": "driverKey", "id": 123 } } } } }