Reddit API Cloud
Reddit API Cloud

Як перетворити архівний приклад на функцію дослідження

План для невеликої команди: спроєктувати перегляд відгуків, перевірити запит SideProject, зберегти контекст і обмежити звернення перед випуском.

Сформулюйте результат, який можна перевірити

Колега відкриває екран дослідження, запитує архівні приклади SideProject про зворотний зв’язок і зберігає нотатку про наступне запитання клієнтам. Таке речення описує поведінку продукту, яку можна випробувати. Воно не обіцяє репрезентативного дослідження ринку, актуальних думок або готового плану розробки. Узгодьте цей невеликий результат із майбутнім користувачем функції.

Reddit API Cloud надає доступ до незалежного історичного архіву Reddit через HTTPS. Вашій команді не потрібно запускати й обслуговувати власний Elasticsearch для звернення до цього архіву. Це не офіційний сервіс Reddit і не джерело поточних оновлень. Публікація, голосування, приватні повідомлення та Reddit OAuth не підтримуються. Отримання історичних записів відокремлене від користувацьких сеансів і бізнес-логіки вашого продукту.

Нехай до архіву звертається ваш сервер

До платного запиту перевірте права колеги у власному застосунку. Обліковий запис архіву дозволяє серверу отримувати записи, але не авторизує клієнтів усередині SaaS. Завантажте ключ цього домену із серверної конфігурації та використайте Authorization: Bearer <key> або X-API-Key: <key>. Секрет не повинен потрапити в браузер разом із текстом результатів.

Вирішіть, чи відкриття збереженої нотатки показуватиме вже отриманий матеріал, чи виконуватиме новий платний пошук. Сховище нотаток, права співробітників і розгортання застосунку забезпечує ваша команда. Розміщений архів не створює готового робочого простору чи окремого кластера для вашого продукту.

Випробуйте конкретне запитання на трьох записах

Використайте https://api.redditapicloud.com/v1/search?q=feedback&subreddit=SideProject&limit=3. На головній розібрані параметри й наведена синтетична порожня відповідь. Без kind пошук допускає дописи та коментарі. q шукає в title і text; кілька термінів поєднуються AND у межах одного поля, що збіглося. Це не семантичний пошук, аналіз тональності чи пошук точної фрази.

Для часового обмеження використовуйте from і to у форматі YYYY-MM-DD UTC за полем created_utc; останній день включений повністю. Це не час потрапляння запису до архіву. min_score задає числовий поріг без сортування й перевірки якості поради. Внутрішній порядок _doc не є хронологією, релевантністю чи оцінкою. Локальне сортування переставляє лише отримане й не повертає відсутніх записів.

Збережіть різницю між джерелом і тлумаченням

Перевірте data та наявність title або text, виводьте вміст як текст і додавайте параметри запиту до матеріалу, який зберігаєте. За наявності parent_id чи link_id плоскі записи можна групувати локально; прогалини при цьому залишаються й повної розмови може не бути. Назва продуктової теми, яку призначив колега, є його тлумаченням, а не класифікацією від архіву.

Порожній результат та помилка потребують окремих станів екрана. Якщо запитання змінилося, збережіть новий запит, не об’єднуючи різні вибірки мовчки в нібито представницький результат. Повторне отримання не обов’язково поверне ті самі записи. Це має бути зрозуміло й тому, хто перечитуватиме нотатку після зустрічі.

Установіть межу для дії та її повторів

Для вмісту limit і page приймають від 1 до 100, одна сторінка потребує окремого запиту. Одне натискання в продукті може викликати кілька платних звернень, якщо ви додали автоматичний обхід сторінок або пошук контексту. Задайте власний максимум викликів і відкладених повторів. Це ваші обмеження, а не надані архівом квоти окремих клієнтів SaaS. Поділ дат не доводить повноти чи унікальності записів.

Читайте total разом із relation: eq означає точний підсумок запиту, gte — нижню межу, unknown — ненадійний підсумок, можливо null. Порожня глибша сторінка може мати unknown замість нуля. Зберігайте has_more та window_exhausted і зупиняйтеся на підтримуваній межі сторінок. Точний підсумок або завершене локальне завдання не доводять отримання всіх відповідних історичних записів. Перелік спільнот із prefix не є пошуком схожих тем.

Кожне успішне звернення, включно з порожньою сторінкою, коштує один кредит за ціною $1 за 1000. Клієнт може втратити відповідь після оплаченого успіху; успішний повтор витратить ще один кредит. Некоректні запити не списуються, збій джерела повертає резерв. Локальна обробка збереженої відповіді не потребує нового отримання, але й не скасовує його попередньої вартості.

Перевірте поведінку до відкриття доступу

Випробуйте користувача з дозволом і без нього, порожню видачу, пропущені поля й перервану відповідь. Код 400 стосується параметрів, 401 — ключа, 402 — балансу, 429 — частоти. Доречні повтори обмежуйте кількістю спроб і виконуйте із затримкою. Публічний /v1/status показує статичний опис і відповідь застосунку, а не справність пошуку в джерелі.

Оцініть, чи допомагає пілот обговоренню продукту, перш ніж розширювати доступ. Власний сервер, правила зберігання та права клієнтів залишаються в плані випуску. Сторінка ключа відповідає за доступ, сторінка цін — за мінімальне поповнення $50. Самі реєстрація й оплата ще не означають готовності функції до використання.