Сначала решите, что разрешает действие пользователя
Функция подбора материалов об онбординге начинается с решения: сколько обращений к архиву может запустить один пользователь? Reddit API Gateway даёт инженерам продуктовой инфраструктуры доступ к независимому историческому архиву Reddit. Это не официальный сервис и не источник живых обновлений. Пример с сообществом SaaS помогает определить предел работы до запуска функции для клиентов.
Допустим, экран продукта предлагает несколько исторических упоминаний онбординга. Сервер сначала проверяет права пользователя, затем принимает ограниченное задание. Эти проверки и лимиты для клиентов вы реализуете сами. Ключ архива связан с оплачивающим аккаунтом домена, но не назначает роли в вашем продукте и не создаёт отдельный баланс для каждого клиента.
Посмотрите на запрос трёх записей
Попробуйте GET https://api.redditapigateway.com/v1/search?q=onboarding&subreddit=SaaS&limit=3. q=onboarding задаёт текстовый поиск, subreddit=SaaS ограничивает сообщество, limit=3 запрашивает не более трёх записей. Возможны публикации и комментарии; наличие материалов и полезных продуктовых советов не гарантируется. На сервере передавайте X-API-Key: <ключ> либо Authorization: Bearer <ключ>; оба варианта используют ключ именно этого архива.
Синтетический фрагмент ответа, только для демонстрации: {"data":[],"pagination":{"page":1,"limit":3,"total":0,"relation":"eq"},"credits":{"cost":1,"balance":99}}. Это не реальный результат, баланс вымышленный. Успешная пустая выборка также стоит один кредит. Проверьте data и сохраните полученный ответ до преобразования. Не подменяйте счётчик запросов архива своим счётчиком записей, которые прошли проверку и попали в интерфейс продукта.
Считайте попытки вместе с заданием
Для расчёта разрешите заданию не более трёх попыток получения данных. Три успешных запроса стоят три кредита, или $0.003, даже если продукт не сохранил ни одной полезной записи. Такой предел попыток — правило вашего приложения. Включайте в него переходы по страницам и повторы, а не только строки, прошедшие проверку.
Повторная обработка и повторный запрос — разные действия. Уже сохранённый сервером ответ можно обработать заново без обращения к архиву. Новое получение может вернуть другой материал и при успехе стоит ещё один кредит. Пусть обновление выборки будет отдельным решением пользователя, если оно запускает платную работу.
Определите, что выборка позволяет показать
API возвращает плоские записи, что означает отсутствие встроенной иерархии потоков на стороне сервера. Поля parent_id и link_id могут присутствовать в некоторых записях, но их наличие не гарантируется. При необходимости клиентское приложение может группировать эти элементы локально, но такая сборка не гарантирует полного восстановления исходных бесед и их структуры. Порядок _doc — внутренний порядок документов, не хронология, релевантность или оценка; min_score фильтрует без сортировки. В запросе содержимого доступно до 100 записей, page принимает от 1 до 100 в отдельных обращениях. Обход, деление дат и удаление дублей не доказывают полноту или уникальность.
Подпишите результат как полученную выборку. Короткая страница не доказывает, что других обсуждений онбординга в SaaS нет; локальная группировка не восстанавливает полную беседу. Сохраните параметры запроса и сведения о получении рядом с отобранными материалами, чтобы коллега понимал основание вывода.
Подготовьте функцию к повторному использованию
В документации выберите подходящие фильтры, а на странице цен оцените число допустимых обращений. Страница ключа нужна для подготовки аккаунта и пополнения; руководство прослеживает ключ через разрешённое задание и его замену. Определите ответственных за эти действия до того, как функция начнёт запускаться регулярно.
Регистрация по электронной почте и паролю показывает ключ один раз сразу, до оплаты. Пароль занимает 12–72 байта UTF-8; 100 пробных кредитов зависят от общесетевой защиты от злоупотреблений. Минимальное платное пополнение $50 даёт 50000 кредитов по цене $1 за 1000 успехов. Подписок нет, оплаченные кредиты не истекают. До оплаты изучите документацию, цены, страницу ключа и руководство. Публичный /v1/status бесплатен, но подтверждает лишь HTTP-ответ и статическое описание, а не работоспособность поиска или баланс.