Versions Compared

Key

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

Table of Contents

get-fact-set

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

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

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

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

  1. "asc". В порядке увеличения временной метки BestTs событий Fact.

  2. "desc" (по умолчанию). В порядке уменьшения временной метки BestTs событий Fact.

  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

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

Code Block
GET /api/v1/post/<post-guid>/channel/<channel-no>/\
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]); <start-fact-id>  задает начальный идентификатор события (целое число, не GUID); <limit> — опциональный параметр, который задает максимальное количество событий в ответе (возможные значения в интервале [1;1000], по умолчанию — 10); <order> — опциональный параметр, который задает порядок сортировки событий в теле ответа; <image-class-1>..<image-class-N>  набор классов изображений в теле ответа.


get-fact-set6

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

Code Block
GET /api/v1/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]); <start-fact-guid>  начальный GUID события; <limit> — опциональный параметр, который задает максимальное количество событий в ответе (возможные значения в интервале [1;1000], по умолчанию — 10); <order> — опциональный параметр, который задает порядок сортировки событий в теле ответа<image-class-1>..<image-class-N> — набор классов изображений в теле ответа.


Если структура url-запроса get-fact-set, get-fact-set2 или get-fact-set3 соответствует требованиям, сервер, после успешной обработки, возвращает ответ с http-кодом 200. Тело ответа содержит multipart/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--

Примечания:

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

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