Запрос объектов мониторинга позволяет получить список транспортных средств, доступных данному пользователю.
Алгоритм запроса объектов мониторинга в СПИК:
Ниже приведены примеры для JS и С#, иллюстрирующие данный алгоритм в контексте запроса REST и SOAP соответственно.
var baseUrl = ’http://localhost:8081/spic/units/rest/’;
var getAllUnitsCountUrl = baseUrl;
var getAllUnitsServerUrl = baseUrl + ’getAllUnitsPaged’;
var getUnitServerUrl = baseUrl + ’getUnit’;
var unitsPerPage = 20;
var provider = new HttpJsonRequestProvider();
function getAllUnitsCount() {
return provider.GETAuthorized(getAllUnitsCountUrl,
null,
getAuthorizationToken()).response;
}
function getUnit(unitId) {
return provider.POST(getUnitServerUrl,
{ ObjectId: unitId},
getAuthorizationToken()).response;
}
function getUnitsPage(offset) {
return provider.POSTAuthorized(getAllUnitsServerUrl,
{
Offset: offset,},
Count: unitsPerPage
getAuthorizationToken()).response;
}
var offset = 0;
var units = getUnitsPage(offset).Units;
//Создание экземпляра заглушки.
var unitsClient = new SpicSoapUnitsServiceClient();
//Добавление поведения авторизации.
unitsClient.Endpoint.Behaviors.Add(new AuthorizationBehavior());
//Получить количество доступных объектов мониторинга.
var unitsCount = unitsClient.GetAllUnitsCount();
//Создание запроса.
var request = new SpicObjectsChunkRequest { Offset = 0, Count = unitsCount };
var units = unitsClient.GetAllUnitsPaged(request);
При успешном выполнении units будет содержать все доступные ОМ.
Пример SpicObjectsChunkRequest в JS выглядит следующим образом:
{
"offset": 0,
"count": 20
}
Offset – это смещение.
Count – количество ОМ
Пример SpicUnitCollectionDto:
{
"Units": [{
"Brand": "",
"Color": "",
"CompanyId": 264,
"Description": "Иван Иванович Иванов",
"GarageNumber": "",
"Model": "",
"Name": "101503",
"OlsonId": "",
"Owner": "",
"Power": "",
"Registration": "",
"StateNumber": "123456",
"UnitId": 294,
"UnitTypeId": 1,
"VinNumber": "",
"Year": ""
}, {
"Brand": "",
"Color": "",
"CompanyId": 264,
"Description": "Петр Петрович Петров",
"GarageNumber": "",
"Model": "",
"Name": "106641",
"OlsonId": "",
"Owner": "",
"Power": "",
"Registration": "",
"StateNumber": "234567",
"UnitId": 304,
"UnitTypeId": 1,
"VinNumber": "",
"Year": ""
}, {
"Brand": "",
"Color": "",
"CompanyId": 10124,
"Description": "",
"GarageNumber": "",
"Model": "",
"Name": "Автомобиль 845",
"OlsonId": "",
"Owner": "",
"Power": "",
"Registration": "",
"StateNumber": "",
"UnitId": 10981,
"UnitTypeId": null,
"VinNumber": "",
"Year": ""
}]
}
Результирующие классы для контрактов данных SpicObjectsChunkRequest и SpicUnitCollectionDto для SOAP можно посмотреть в в классах, сгенерированных после получения метаданных.
Номер материала: 489
Отправлено: Wed, Sep 12, 2018
Последнее обновление: Sun, Oct 7, 2018
Отправлено: Анисимов Максим Михайлович [m.anisimov@scout-gps.ru]
Online URL: https://kb.scout-gps.ru/article/Запрос-объектов-мониторинга-в-СПИК-489.html