Страница 1 из 1

API/getlist: ошибка в формировании json-объекта

Добавлено: Сб дек 25, 2021 12:29
bogdan108
Запросил лист через API.
Получил некорректный json-объект.

Код: Выделить всё

{
   "list_key" : "IsNLwiDOqlVkuyd4sXbm",
   "rules" : {
      "8" : {
         "rule" : "radio.sampo.ru",
         "reasons" : [
            "radio.sampo.ru"
         ]
      },
      "5" : {
         "reasons" : [
            "http://video.rufox.ru"
         ],
         "rule" : "video.rufox.ru"
      },
      "7" : {
         "rule" : "pasta.cs.uit.no"
      },
      "3" : {
         "rule" : "audio-books.su",
         "reasons" : [
            "audio-books.su"
         ]
      },
      "4" : {
         "rule" : "biil.ru"
      },
      "10" : {
         "rule" : "planetakino.com",
         "reasons" : [
            "http://planetakino.com/"
         ]
      },
      "6" : {
         "reasons" : [
            "radio.aplus.by"
         ],
      "9" : {
         "rule" : "195.154.200.229",
         "reasons" : [
            "195.154.200.229"
         ]
      },
      "2" : {
         "reasons" : [
            "sputnik24.tv"
         ],
         "rule" : "sputnik24.tv"
      },
      "1" : {
         "rule" : "168.143.186.29"
      }
   },
   "Expired" : "2021-12-28  5:41"
}
Сама проблема между 6 -ым и 9-ым правилом - незавершенное 6-ое правило.

Прошу отладить скрипт формирования json-объекта.

Re: ошибка в формировании json-объекта в ответе API/getlist

Добавлено: Сб дек 25, 2021 12:32
bogdan108
Также прошу переделать формат вывода списка rules:
1) каждый rule - на отдельной строке;
2) содержимое reasons - в той же строке что и rule.

Re: ошибка в формировании json-объекта в ответе API/getlist

Добавлено: Сб дек 25, 2021 12:36
bogdan108
Судя по ошибке и по расположению атрибута Expires в конце - json-объект формируется по мере выполнения скрипта, а не на завершающей стадии, когда все параметры json-объекта уже готовы.
В связи с этим прошу внедрить хоть какую-то проверку на корректность отправляемого json-объекта.

Re: ошибка в формировании json-объекта в ответе API/getlist

Добавлено: Сб дек 25, 2021 12:38
bogdan108
Прошу названия атрибутов записывать в едином стиле - либо маленькими буквами, либо капсом, либо ещё в каком-либо стиле, но обязательно в едином стиле для всех json-ответов, генерируемых системой API.

Сейчас атрибуты list_key, rules, rule и reasons указаны маленькими буквами, а Expires - начиная с большой.

Re: ошибка в формировании json-объекта в ответе API/getlist

Добавлено: Сб дек 25, 2021 12:41
bogdan108
Прошу добавить имя списка в ответный json-объект на запрос getlist.

Например:

Код: Выделить всё

    list_name: "banner.urls",
Не является проблемой в пользовательской программе сохранять имя списка и восстанавливать его при получении json-объекта.
Но в случае асинхронного выполнения кода намного проще одному потоку передать сформированный URL, а уже в другой поток загрузить готовый json-объект, в котором уже имеется вся необходимая информация, включая имя списка.

Это пожелание можно квалифицировать как нездоровое желание (зачем передавать в обратную сторону информацию, которая уже есть у того, кто её запрашивал), но это ровно до тех пор, пока человек не полезет в консоль.
Без разницы что там было в запросе - в самом json-объекте будет полная информация о том, что человек читает.

Re: API/getlist: ошибка в формировании json-объекта

Добавлено: Сб дек 25, 2021 12:58
bogdan108
Прошу добавить размер запрашиваемого списка в ответный json-объект на запрос getlist.

Например:

Код: Выделить всё

    list_size_full: "38",
    list_size: "100",
Где:
- list_size_full - количество правил в исходном листе правил;
- list_size - количество запрошенных правил

В данный момент в списке audio-video.pcre всего 38 правил, а в списке cloud-storage.urls - 41
Запрос проверочного списка на 100 правил выдаст только те самые около 38 или 41 правил.
Атрибуты list_size_full и list_size в самом списке позволят понять, что система на сервере функционирует исправно и правильно поняла запрос на 100 проверочных правил, а не сломалась или что часть правил потерялись в пути.

Re: API/getlist: ошибка в формировании json-объекта

Добавлено: Сб дек 25, 2021 13:13
bogdan108
Прошу в json-объект в ответах API добавлять атрибут req_name, который указывает на имя запроса.

Пример:

Код: Выделить всё

    req_name: "userinfo",
Или:

Код: Выделить всё

    req_name: "getlist",