Загрузка...

API Предложение: добавить параметр result_count для ограничения количества результатов в batch-запросах

Тема в разделе Предложения создана пользователем PerfectBot 18 июл 2025. 90 просмотров

Опрос

Согласны ли вы с предложением?

  1. Да

    2
    50%
  2. Да, но нужно доработать (опишу в комментариях)

    0
    0%
  3. Нет

    2
    50%
  1. PerfectBot
    PerfectBot Автор темы 18 июл 2025 3 16 апр 2025
    Хочу предложить важное улучшение API для повышения производительности batch-запросов и экономии ресурсов.
    ПРОБЛЕМА:

    При использовании batch-запросов для поиска игр возникает серьезная проблема с производительностью:
    Текущая ситуация:
    • Запрос: /steam?game[]=730&game[]=440&game[]=570...
      (10 игр в batch)
    • Ответ: 10 игр × 40 аккаунтов = 400 аккаунтов в JSON
    • Размер JSON: большой
    • Время парсинга: 2-3 минуты вместо секунд
    • Трафик: огромный расход на каждый запрос
    Результат: batch-запросы работают медленнее обычных запросов из-за огромного объема данных, хотя должны быть быстрее.
    ПРЕДЛОЖЕНИЕ:

    Добавить параметр
    result_count
    для ограничения количества возвращаемых результатов на каждую игру:
    /steam?game[]=730&result_count=1 // Только 1 самый дешевый аккаунт
    /steam?game[]=730&result_count=5 // Только 5 первых аккаунтов
    /steam?game[]=730&result_count=10 // Только 10 аккаунтов

    Альтернативные названия:
    per_page
    , max_results
    , rows
    (любое удобное для разработчиков)
    ПРЕИМУЩЕСТВА:

    Для пользователей API:

    1. Скорость: JSON в 40 раз меньше → парсинг за секунды вместо минут
    2. Экономия трафика: меньше данных = быстрее загрузка
    3. Гибкость: каждый выбирает нужное количество результатов
    Для сервера:

    1. Производительность: меньше нагрузка при генерации ответа
    2. Экономия ресурсов: меньше данных для обработки из БД
    3. Пропускная способность: экономия трафика сервера
    4. Быстрее ответы: меньше времени на формирование JSON
    ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ:

    • Мониторинг цен: нужен только самый дешевый → result_count=1
    • Анализ рынка: нужно 5-10 вариантов → result_count=10
    • Сравнение продавцов: топ-3 предложения → result_count=3
    • Полная выгрузка: без параметра → все как сейчас (обратная совместимость)


    Совместимость:
    • Обратная совместимость: без параметра работает как сейчас
    • Простота: добавляется в существующие эндпоинты без изменения логики

      Параметр можно добавить во все игровые категории:
    • /steam
    • /fortnite
    • /valorant
    • /minecraft
    • И другие разделы


    АРГУМЕНТЫ В ПОЛЬЗУ:
    1. Решает реальную проблему: многие разработчики сталкиваются с медленными batch-запросами
    2. Гибкость: каждый использует по потребностям
    3. Масштабируемость: снижает нагрузку при росте пользователей


    Что думаете? Такое улучшение значительно повысит производительность API и удобство разработки!
     
    18 июл 2025 Изменено
    1. Посмотреть предыдущие комментарии (5)
    2. PerfectBot Автор темы
      ЛевыйТип, вес джисона огромный ты че пристал, добавить 1 параметр никаких проблем в этом нет, типа параметра выбора страницы
      18 июл 2025 Изменено
    3. PerfectBot Автор темы
      ЛевыйТип,
      import requests

      url = "https://prod-api.lzt.market/batch"

      payload = [
      {
      "uri": "/steam?game[]=1158310&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=261550&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=108600&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=236850&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=251570&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=294100&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=2135150&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=377160&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=625960&daybreak=2&order_by=price_to_up",
      "method": "GET"
      },
      {
      "uri": "/steam?game[]=392160&daybreak=2&order_by=price_to_up",
      "method": "GET"
      }
      ]
      headers = {
      "accept": "application/json",
      "content-type": "application/json"
      }

      response = requests.post(url, json=payload, headers=headers)

      print(response.text) делай замер ответа, вернет 400 акков
    4. PerfectBot Автор темы
      ЛевыйТип, это запрос для аккаунта с 10 популярными играми, а если на акке 100-200 игр то вообще ггвп
    5. Посмотреть следующие комментарии (2)
  2. уязвимый
    уязвимый 18 июл 2025 Заблокирован(а) 309 18 сен 2023
    шляпа написанная искусанным имигрантом
     
    1. PerfectBot Автор темы
      уязвимый, да мне похуй мне главное чтоб ето добавили, а не твой коментарий
    2. PerfectBot Автор темы
  3. PerfectBot
    PerfectBot Автор темы 18 июл 2025 3 16 апр 2025
    [IMG]по каждой ссылке оно качает инфу от 1 до 40 акков, json весит много,если на аккаунте 100 игр и по каждой игре с параметрами есть по 40обьявлений, это json с инфой о 4х к аккаунтов, хотя мне нужна инфа о 100 акках
    --- Сообщение объединено с предыдущим 18 июл 2025
    тоесть 10 бачей по 400 аккаунтов
     
Загрузка...
Top