API Reddit CC

Від ручного запиту до завдання за розкладом

Практичний посібник: запит workflow, картки для опрацювання, межі пагінації та журнал запусків із коректною обробкою повторних звернень.

Отримати API-ключ

Спершу домовтеся про результат

У цьому прикладі завдання готує порцію історичних матеріалів з r/automation для перегляду командою. Успішне завершення означає, що обраний обсяг опрацьовано й результат записано в журнал. Воно не підтверджує прочитання всього архіву. Перевірте ручний запуск і лише потім призначайте частоту, з якою команда встигає працювати з чергою.

Для кожного запуску створіть локальний номер, збережіть умови пошуку та місце призначення відібраних карток. Це ваша службова інформація, а не додаткові параметри API. Коли виникне питання про відсутній запис, журнал допоможе відтворити умови звернення. Незалежний історичний архів не свідчить про те, що відбувається на Reddit зараз.

Побудуйте запит під конкретне питання

Надішліть GET https://api.apireddit.cc/v1/search?q=workflow&subreddit=automation&limit=3 з ключем у заголовку Authorization: Bearer або X-API-Key. Обидва варіанти чинні. Невелику відповідь простіше оглянути перед зіставленням полів. Значення kind=post залишає дописи, kind=comment — коментарі.

Параметр q шукає в title і text. Для кількох слів діє AND у межах поля, яке має збіг: одне слово лише в заголовку, а друге лише в тексті не забезпечують відповідності. Дати from і to мають формат YYYY-MM-DD та часову зону UTC; день to входить у діапазон. min_score відсіює записи нижче порога, не впорядковуючи результати за оцінкою.

Зберігайте матеріал і рішення окремо

Перенесіть доступні id і kind до картки, а title та text залиште вмістом для перегляду. Архівний текст не повинен ставати командою для виконавця. Примітку про добір, стан опрацювання й номер запуску тримайте в окремих локальних полях. Перед додаванням звірте ідентифікатор із тим, що вже є у вашій черзі.

API повертає плоскі записи. Якщо parent_id або link_id присутні та корисні, їх можна використати для локального групування. Відсутні зв’язки не варто домислювати: повнота розмови не гарантується. Для звернення до конкретного елемента використовуйте /v1/item з його id. Це окреме отримання даних, тож врахуйте його у бюджеті запуску.

Завершуйте з явною причиною

Задайте власну межу сторінок у межах дозволених 100; на сторінку можна запитати до 100 записів. Під час проходу не змінюйте фільтри. Порядок документів архіву не є часовим, рейтинговим чи порядком релевантності. Перший результат не підходить як надійна позначка найновішого вже опрацьованого допису.

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

Розрізняйте помилку та невідомий результат

За 400 виправте параметри, за 401 перевірте ключ, за 402 — баланс. За 429 зробіть паузу й обмежте кількість повторів. Успішна порожня відповідь витрачає кредит. Збій джерела повертає резерв, тоді як некоректний запит не спричиняє списання.

Якщо клієнт утратив відповідь, сервер міг уже завершити запит і списати кредит. Успішний повтор коштуватиме ще один. Позначайте такий результат як невизначений і перевіряйте дублікати локально. /v1/status не тарифікується та повертає статичну довідку про сервіс; працездатність пошуку в джерелі він не перевіряє. Перед збільшенням навантаження перегляньте сторінку тарифів.