Проверка ошибок / обработка пропущенных значений в вызове веб-API - PullRequest
0 голосов
/ 29 декабря 2018

Я работаю над приложением, которое получает данные о погоде с сервера.Сервер обновляется каждые 5 минут с данными о погоде от различных метеостанций.Проблема заключается в том, что если есть проблема с подключением или станция отключена от сети, в конечном итоге пропускаются значения.API возвращает указанную метку времени, временной шаг между измерениями и список измерений.

В качестве примера, если я попытаюсь получить значение каждый час для данного дня (24-часовой период), я бы ожидал 24 значения(168 за неделю и 720 за 30/744 за 31 день).Если измерения отсутствуют, результат тот же, за исключением отсутствующих значений, и я не могу узнать, отсутствуют ли они в начале, середине или конце клавиши «значение».

Я пробовал меньшие интервалы времени (каждыезначение для периода - день, неделя, месяц), чтобы заполнить промежутки между возможными пропущенными измерениями, но API имеет ограничения на запросы, включая ограничение размера, что делает малый интервал непрактичным для больших запросов (например, месяца).

пример того, что возвращается с сервера -

{
 "beg_time"= 1533097205,
 "step_time": 3600,
 "value":[
  [14.7],
  [14.6],
  [14.5],
   ...
  [14.8]]
}

Так что, если я в итоге пропущу измерения и получу меньше, чем ожидалось, как я начну проверять это?Желаемые результаты - ввод данных в файл с отметкой времени для каждого измерения.Недостающие значения в порядке, но мне нужно знать, как найти их в списке.Я могу связать beg_time только с первым значением, и каждое последующее значение имеет время beg_time + step_time.Мне нужно знать, где мне не хватает значения, чтобы я мог добавить метку времени в файл, но оставить измерение пустым.

Полный пример неполного ответа: только 23 значения, хотя ожидается 24.

[
{
    "beg_time": 1533009600, 
    "step_time": 3600, 
    "value": [
        [
            14.6
        ], 
        [
            15.1
        ], 
        [
            14.2
        ], 
        [
            12.8
        ], 
        [
            11.6
        ], 
        [
            10.7
        ], 
        [
            11.5
        ], 
        [
            16.3
        ], 
        [
            22.3
        ], 
        [
            28.2
        ], 
        [
            29.4
        ], 
        [
            29.1
        ], 
        [
            29.3
        ], 
        [
            29.6
        ], 
        [
            30.5
        ], 
        [
            29.7
        ], 
        [
            28.9
        ], 
        [
            26.3
        ], 
        [
            24.8
        ], 
        [
            23.6
        ], 
        [
            21.2
        ], 
        [
            17.9
        ], 
        [
            15.9
        ]
    ]
}

]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...