Page tree

Citypoint - контроль и аналитика автопарка

Skip to end of metadata
Go to start of metadata

Запрос на изменение групп объектов.

Группу можно редактировать только если Создатель ("Creator") группы является текущим пользователем.

Запрос:

URL:

               PATCH https://api.url/v2.1/user/<user_id>/groups/1

Доп. Заголовки:

Content-Type - формат запроса. Должно быть "application/vnd.api+json"

Accept - указание формата ответа. Должно допускать "application/vnd.api+json"

Authorization - для передачи токена. Передается в формате: Bearer <access_token>.

Данные запроса:

Данные присылаются в формате JSON API. Формат данных аналогичен формату данных в ответе на запрос получения данных.

Поля DateOfCreation, Deletable, Creator не требуются, они допускаются для соответствия формату получения данных, но сервер его игнорирует.

Запрещено изменять тип группы.


ПолеОписание
data

Содержит данные в формате JSON API.

ПолеТипОписание
idintДля соответствия JSON API передаётся строкой.
typestringТип ресурса (всегда "group")
attributesobjectДанные объекта (см. Описание атрибутов)
relationshipsobjectсвязанные объекты

Описание атрибутов:

ПолеТипNullableОписание
NamestringfalseНазвание группы
HiddenboolfalseСкрывать группу
DateOfCreationdatetimefalseДата создания группы
DeletableboolfalseМожно ли удалять группу
Type

string

falseТип группы (типы групп приведены ниже)

Типы Групп:

ТипОписание
groupОбычная группа
locationЛокация (машина может быть привязана только к одной из локаций)
departmentПодразделение (машина и водитель может быть только в одном подразделении)
userГруппа по видимым пользователям (зарезервировано)

Связанные объекты:

ПолеТипNullableОписание
CreatoruserfalseСсылка на создателя группы
Carsarray<car>falseСписок связанных ТС
Driversarray<driver>falseСписок связанных водителей
Zonesarray<zone>falseСписок связанных зон.

Коды ответов:

200 ОК - Сервер обработал запрос. В теле ответа  содержится группа. Также будет передан заголовок Last-Modified.

304 Not Modified - Сервер обработал запрос. Изменения не найдены.

401 Unauthorized - не передан заголовок Authorization, либо токен невалидный или окончилась валидация.

403 Forbidden - нет прав на просмотр (id пользователя не соответствует токену или запрошена группа не принадлежащая пользователю).

404 Not Found - запрошенная группа не найдена.

400 Bad Request - Переданы неподдерживаемые параметры, либо сервер не понял запрос (описание ошибки в теле ответа).


Пример:

Запрос списка всех групп:

PATCH https://api.url/v2.1/user/1/groups/1 HTTP/1.1
Accept: application/vnd.api+json
Content-Type: application/vnd.api+json

{ "data": {
    "type": "group",
    "id": "1",
    "attributes": {
        "Name": "edited group",
        "Hidden": 0,
    },
    "relationships":{
        "Drivers": {
           "data" : [
               {"type": "driver", "id":"2"}
           ]
        },
        "Zones": {
            "data": [
               {"type": "zone", "id":"4"}
             ],
        }
    }
} }

HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
Allow: GET
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT


{
    "links": {
        "self": "http://api.url/v2.1/user/1/groups/1",
    },
    "data": {
        "type": "group",
        "id": "1",
        "attributes": {
            "Name": "edited group",
            "Hidden": 0,
            "Type": 0,
            "DateOfCreation": "2014-10-09T16:04:19Z"
        },
        "relationships":{
            "Creator": {
                "data": {"type": "user", "id":"1"}
            },
            "Cars": {
                "data": [
                    {"type": "car", "id":"1"},
                    {"type": "car", "id":"2"},
                    {"type": "car", "id":"3"},
                    {"type": "car", "id":"4"}
                ]
            },
            "Drivers": {
               "data" : [
                   {"type": "driver", "id":"2"}
               ]
            },
            "Zones": {
                "data": [
                   {"type": "zone", "id":"4"}
                ],
            }
        }
    }
}
  • No labels