Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

get

-

_fact-set

Структура urlURL-запроса get-_fact-set (для загрузки первой страницы) определяется форматом:

Code Block
GET /api/v1/post/<post-guid>uuid>/channel/<channel-no>/fact\
fact?startTs=<start-ts>    ?order=<order>
    &limit=<limit>&order=<order>

где

  • <post-
guid>  guid
  • uuid> :: char[37]  глобальный идентификатор поста; 
  • <channel-no> :: int32_t  номер канала поста
(возможные значения в интервале [0
  • ;
2147483647]); <start-ts>  начальный момент времени, мкс (от 01.01.1970 00:00 UTC); <limit>  опциональный параметр, который задает максимальное
  •  
  • <limit> :: uint16_t  максимальное количество событий в ответе (возможные значения в интервале [1;1000], по умолчанию  10); 
  • <order> :: char[] 
 опциональный параметр, который задает порядок сортировки событий в теле ответа
  •  порядок загрузки событий относительно курсора чтения.

Возможные значения параметра <order>:

Структура url-запроса get-fact-set4 определяется
  1. "asc". В порядке увеличения временной метки BestTs событий Factпрямом хронологическом порядке фиксации изображений и записи события в архив. По умолчанию начальное положение курсора чтения определяется событием с наименьшей отметкой времени. В теле ответа события упорядочены по возрастанию #/Id.

  2. "desc" (по умолчанию). В порядке уменьшения временной метки BestTs событий Factобратном хронологическом порядке фиксации изображений события. По умолчанию начальное положение курсора чтения определяется событием с наибольшей отметкой времени. В теле ответа события упорядочены по убыванию #/Id.

  3. "db". В прямом хронологическом порядке попадания записи событий Fact в базу данных. Предназначено для копирования архива событий.архив.

  4. "dbrev". В порядке, обратном порядку попадания обратном хронологическом порядке записи событий Fact в базу данных. Предназначено для копирования архива событий.

get-fact-set2

Структура url-запроса get-fact-set2 определяется форматом:

Code Block
GET /api/v1/post/<post-guid>/channel/<channel-no>/\
fact?startId=<start-fact-id>&limit=<limit>&order=<order>

где <post-guid>  guid поста; <channel-no>  номер канала поста (возможные значения в интервале [0; 2147483647]); <start-fact-id>  задает начальный идентификатор события (целое число, не GUID); <limit>  опциональный параметр, который задает максимальное количество событий в ответе (возможные значения в интервале [1;1000], по умолчанию  10); <order>  опциональный параметр, который задает порядок сортировки событий в теле ответа.

get-fact-set3

Структура url-запроса get-fact-set3 определяется форматом:

Code Block
GET /api/v1/post/<post-guid>/channel/<channel-no>/\
fact?startGuid=<start-fact-guid>&limit=<limit>&order=<order>

где  <post-guid>  guid поста; <channel-no>  номер канала поста (возможные значения в интервале [0; 2147483647]); <start-fact-guid>  начальный GUID события; <limit> — опциональный параметр, который задает максимальное количество событий в ответе (возможные значения в интервале [1;1000], по умолчанию — 10); <order>  опциональный параметр, который задает порядок сортировки событий в теле ответа.

Если структура url-запроса get-fact-set, get-fact-set2 или get-fact-set3 соответствует требованиям, сервер после успешной обработки возвращает ответ с http-кодом 200. Тело ответа содержит application/json-документ с параметрами:

  1. "status" <uint16_t>. Содержит 200.

  2. "result" <struct[]>. Массив. Каждый элемент содержит параметры одного события Fact.

 get-fact-set4

  1. архив.

Note
iconfalse

Клиентам рекомендуется задавать значение URL-параметра limit. У сервера может быть свое значение для этого ограничения, меньшее, чем запросил клиент. В этом случае сервер вернет ошибку. Соответственно, если клиент запросил лимит и сервер успешно вернул число записей, меньшее, чем было запрошено, — это значит, что были получены все имеющиеся записи, удовлетворяющие критерию поиска.

get_fact-set2

Структура URL-запроса get_fact-set2 (для загрузки последующих страниц) определяется форматом:

Code Block
GET /api/v1/post/<post-guid>/channel/<channel-no>/fact\
fact?startTs=<start-ts>&limit=<limit>&order=<order>\
&imageclass=<image-class-1>&..&imageclass=<image-class-N>

где <post-guid>  guid поста; <channel-no>  номер канала поста (возможные значения в интервале [0; 2147483647]); <start-ts>  начальный момент времени, мкс (от 01.01.1970 00:00 UTC); <limit>  опциональный параметр, который задает максимальное количество событий в ответе (возможные значения в интервале [1;1000], по умолчанию  10); <order>  опциональный параметр, который задает порядок сортировки событий в теле ответа; <image-class-1>..<image-class-N>  набор классов изображений в теле ответа.

get-fact-set5

Структура url-запроса get-fact-set5 определяется форматом:

Code Block
GET /api/v1/post/<post-guid>/channel/<channel-no>/\
fact    ?startId=<start-fact-id>&limit=<limit>&\
    &order=<order>\
    &imageclass=<image-class-1>&..&imageclass=<image-class-N>
где <post-guid> — guid поста; <channel-no> — номер канала поста (возможные значения в интервале [0; 2147483647]); 
limit=<limit>

где

  • <start-fact-id>

  задает начальный идентификатор события (целое число, не GUID); <limit> — опциональный параметр, который задает максимальное количество событий в ответе (возможные значения в интервале [1;1000], по умолчанию — 10); <order> — опциональный параметр, который задает порядок сортировки событий в теле ответа; <image-class-1>..<image-class-N>  набор классов изображений в теле ответа.

get-fact-set6

Структура url-запроса get-fact-set6 определяется
  • :: int64_t  начальное положение курсора чтения. Задается локальным идентификатором события Fact#Id. Тело ответа содержит событие, на которое указывает курсор, если это событие присутствует в архиве.

get_fact-set3

Структура URL-запроса get_fact-set3 определяется форматом:
Code Block
GET /api/v1/fact/post/<post-guid>/channel/<channel-no>
/
\
fact
    ?startGuid=<start-fact-guid>
&limit=<limit>&

    &order=<order>
\

    &
imageclass=<image-class-1>&..&imageclass=<image-class-N>где  <post-guid> — guid поста; <channel-no> — номер канала поста (возможные значения в интервале [0; 2147483647]); 
limit=<limit>

где  

  • <start-fact-guid> :: char[37] 

 начальный GUID события; <limit> — опциональный параметр, который задает максимальное количество событий в ответе (возможные значения в интервале [1;1000], по умолчанию — 10); <order> — опциональный параметр, который задает порядок сортировки событий в теле ответа<image-class-1>..<image-class-N> — набор классов изображений в теле ответа.
  • начальное положения курсора чтения. Задается глобальным идентификатором события Fact#Guid. Тело ответа содержит событие, на которое указывает курсор, если это событие присутствует в архиве.



Если структура url-запроса get-fact-set, get-fact-set2 или get-fact-set3 соответствует требованиям, сервер

,

после успешной обработки

,

возвращает ответ с http-кодом 200. Тело ответа содержит

multipart

application/

form-data-документ.

Первая часть, возвращаемая сервером, которой присваивается имя “facts”, содержит массив найденных событий в формате JSON. Вторая и последующие части содержат медиаданные изображений запрошенных событий и соответствующие этим изображениям метаданные, в формате JPEG и JSON соответственно.

Каждой части присваивается имя, равное идентификатору события, которой соответствует данная часть. Каждой части присваивается имя файла в формате “image.<image-class> или “meta.<image-class>” для частей, содержащих медиаданные и метаданные соответственно.

Пример url-запроса:

Code Block
GET /post/a51d1532-466f-490a-8b06-753cfef7de28/channel/0/fact\
?order=dbrev&imageclass=plate&imageclass=body&limit=2

Пример тела ответа:

Code Block
--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: application/json
Content-Disposition: form-data; name="facts"

[{"Plate":{"Exact_rect":[8.59107e-3,0.550856999999999,4.16667e-2,0.558856999999999],"Text":"АА4527ОС","Country":804,"Validity":79,"Type":1},"Image":"1450715219089099","Direction":"approaching","AlarmTypes":[],"Bestts":1450715219051840,"Guid":"f3e07024-3e9d-464f-baa4-d31291e14903","Speed":1,"SpeedLimit":60,"Id":1450715219089099,"Geodata":{"latitude":50.43756,"speed":null,"altitude":null,"longitude":30.45221}},{"Plate":{"Exact_rect":[0.435996999999999,0.488,0.465205999999999,0.494286],"Text":"АА0669ОЕ","Country":804,"Validity":72,"Type":1},"Image":"1450715223089098","Direction":"receding","AlarmTypes":[],"Bestts":1450715223011871,"Guid":"e9877e1f-4d5b-41aa-a4b2-84422d9b0e2f","Speed":56,"SpeedLimit":60,"Id":1450715223089098,"Geodata":{"latitude":50.43756,"speed":null,"altitude":null,"longitude":30.45221}}]
--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: image/jpeg
Content-Disposition: form-data; name="f3e07024-3e9d-464f-baa4-d31291e14903"; filename="image.plate"

(JPEG DATA)
--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: application/json
Content-Disposition: form-data; name="f3e07024-3e9d-464f-baa4-d31291e14903"; filename="meta.plate"

{"transform":{"a":30.233766233766232,"d":125,"b":0.0,"x":-0.2597402597402597,"c":0.0,"y":-68.78571428571429},"size":[134,30]}
--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: image/jpeg
Content-Disposition: form-data; name="f3e07024-3e9d-464f-baa4-d31291e14903"; filename="image.body"

(JPEG DATA)
--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: application/json
Content-Disposition: form-data; name="f3e07024-3e9d-464f-baa4-d31291e14903"; filename="meta.body"

{"transform":{"a":5.049891540130152,"d":5.057803468208093,"b":0.0,"x":0.0,"c":0.0,"y":-2.3034682080924855},"size":[220,165]}
--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: image/jpeg
Content-Disposition: form-data; name="e9877e1f-4d5b-41aa-a4b2-84422d9b0e2f"; filename="image.plate"

--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: application/json
Content-Disposition: form-data; name="e9877e1f-4d5b-41aa-a4b2-84422d9b0e2f"; filename="meta.plate"

{"transform":{"a":34.74626865671642,"d":159.0909090909091,"b":0.0,"x":-15.149253731343284,"c":0.0,"y":-77.63636363636364},"size":[134,30]}
--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: image/jpeg
Content-Disposition: form-data; name="e9877e1f-4d5b-41aa-a4b2-84422d9b0e2f"; filename="image.body"

(JPEG DATA)
--4tfwup9md5utg2ok45s9g28smfygsarq
Content-Type: application/json
Content-Disposition: form-data; name="e9877e1f-4d5b-41aa-a4b2-84422d9b0e2f"; filename="meta.body"

{"transform":{"a":5.805486284289277,"d":5.813953488372093,"b":0.0,"x":-2.114713216957606,"c":0.0,"y":-2.355481727574751},"size":[220,165]}
--4tfwup9md5utg2ok45s9g28smfygsarq--

Примечания:

  • Запрос get-fact-set2 следует использовать для организации постраничных запросов, передавая в качестве этого параметра значение последнего идентификатора, полученного на предыдущей странице.

  • Клиентам рекомендуется задавать значение url-параметра limit. У сервера может быть свое значение для этого ограничения, меньшее, чем запросил клиент. В этом случае сервер вернет ошибку. Соответственно, если клиент запросил лимит и сервер успешно вернул число записей, меньшее, чем было запрошено,  это значит, что были получены все имеющиеся записи, удовлетворяющие критерию

    JSON-документ get_fact-set_rbody-200 с параметрами:

    1. "status" :: uint16_t. Содержит 200.

    2. "result" :: struct[]. Массив. Каждый элемент содержит параметры одного события Fact.