Page tree

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

Skip to end of metadata
Go to start of metadata

Запрос:

URL:

Все группы пользователя:

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

Запрос группы по id:

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

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

If-Modified-Since - Если ранее уже запрашивался полный список групп, то при обновлении следует указывать заголовок If-Modified-Since с датой полученной заголовка ответа Last-Modified

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

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

Доп. Параметры запроса:

ИмяТипЗначение по умолничюОписание
page[offset]int0Пропустить несколько первых записей
page[limit]int100Количество групп в выводе
fields[group]string

Фильтрация полей отображаемых в группах.

прим:

Если в запросе задано fields[group]=Name&fields[group]=Cars

То ответ будет содержать только Name и список привязанных ТС (Cars)

Параметры sort, include и filter (определённые в стандарте JSON API) в текущей версии api не поддерживаются. В случае их получения сервер будет возвращать ошибку 400.

Ответ:

       Ответ присылается в формате JSON API.

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

Поле links содержит ссылки на ресурсы доступные из данного ресурса

Минимально он должен содержать ссылку на текущий ресурс (self).

Если Все группы не удалось поместить в одном ответе то также будет содержаться

next - следующая страница (если есть)

prev - предыдущая страница (если есть)

first - первая страница с результатами

last - последняя страница с результатами

meta

Содержит

total_count - количество групп у пользователя

data

Содержит массив объектов групп в формате JSON API.

Каждый объект группа содержит

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

Объекты с которыми связанна группа

В текущей версии содержит только Cars

Cars - массив ссылок на ТС

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

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

Типы Групп:

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

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

ПолеТипNullableОписание
CreatoruserfalseНе доступен для include. Может указывать на пользователей, не доступных для просмотра текущим пользователем.
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 - Переданы не поддерживаемые параметры либо сервер не понял запрос (описание ошибки в теле ответа).


Пример:

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

GET https://api.url/v2.1/user/1/groups HTTP/1.1
Accept: application/vnd.api+json

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",
        "first": "http://api.url/v2.1/user/1/groups",
        "next": "https://api.url/v2.1/user/1/groups?page[offset]=100&page[limit]=100",
        "last": "https://api.url/v2.1/user/1/groups?page[offset]=100&page[limit]=100"
    },
    "data": [
        { "type": "group",
          "id": "1",
          "attributes": {
              "Name": "just group",
              "Hidden": 1,
              "Type": 0,
              "Deletable": 1,
              "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": [],
             },
             "Zones": {
                "data": [],
             }
          }
        },
        { "type": "group",
          "id": "2",
          "attributes": {
              "Name": "another group",
              "Hidden": 1,
              "Type": 0,
              "Deletable": 1,
              "DateOfCreation": "2014-10-09T16:04:19Z"             
          },
          "relationships":{
             "Creator": {
                "data": {"type": "user", "id":"1"}
             },
             "Cars": {
                "data": []
             },
             "Drivers": {
                "data": [],
             },
             "Zones": {
                "data": [],
             }
          }
        },
        { "type": "group",
          "id": "3",
          "attributes": {
              "Name": "ru cars",
              "Hidden": 0,
              "Type": 1,
              "Deletable": 0,
              "DateOfCreation": "2014-10-10T16:04:19Z"
          },
          "relationships":{
              "Creator": {
                 "data": {"type": "user", "id":"1"}
              },
              "Cars": {
                 "data": [
                     {"type": "car", "id":"1"}
                 ]
              },
             "Drivers": {
                "data": [],
             },
             "Zones": {
                "data": [],
             }
          }
        },
         ... остальные группы ...
 
    ],
    "meta":{
        "total_count": 200
    }
}   

Запрос группы по id:

GET https://api.url/v2.1/user/1/groups/1 HTTP/1.1
Accept: application/vnd.api+json

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": "just group",
              "Hidden": 1,
              "Type": 0,
              "Deletable": 1,
              "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": [],
                },
                "Zones": {
                   "data": [],
                }
            }
        }
    }    
}	
  • No labels