Вибір мови

Спроєктуйте серверний контроль доступу до архіву Reddit

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

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

Почніть із двох рішень: чи дозволений запит внутрішньому клієнту та чи може сервер витратити кредит від його імені. Reddit Gateway визначає обліковий запис архіву за ключем. У ньому не закодовані ролі користувачів вашого застосунку, бюджети проєктів або права окремих мікросервісів. Ці перевірки потрібно реалізувати у власному сервері до звернення до захищеного маршруту отримання даних.

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

Не переносіть сюди токени Reddit OAuth, дозволи чи сесійні cookie Reddit. Підтримуються X-API-Key: <ключ> та Authorization: Bearer <ключ>; Bearer передає саме ключ архіву. Сесія панелі облікового запису через Secure HttpOnly відокремлена від цих запитів. Публічний /v1/status не потребує ключа та кредиту, але показує лише статичний опис сервісу й відповідь HTTP-застосунку.

Розділіть спостереження за системою та платне завдання

Перевірте https://api.redditgateway.com/v1/search?q=database&subreddit=backend&limit=3 як обмежений захищений запит. q задає текст, subreddit — спільноту, limit — максимальний розмір сторінки. Збережіть параметри, відповідь і власний ідентифікатор операції без секрету. Оцінюйте HTTP-результат цього звернення окремо від статусу: успішна публічна відповідь не доводить, що пошук в архіві доступний та оплачений.

У вашому сервері можна централізувати квоти внутрішніх сервісів і фонових завдань. Черга, межа паралельних звернень і бюджет повторів допомагають керувати попитом, але не створюють SLA чи гарантії доступності джерела. Якщо локальні правила забороняють витрату, завершуйте обробку до звернення до архіву. Враховуйте успішні повтори окремо від початкової операції, інакше витрати кредитів будуть занижені.

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

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

Обмежте сторінки, повтори та зміну ключа

Використовуйте лише q, subreddit, author, kind, from, to, min_score, limit і page у пошукових маршрутах. kind приймає post або comment; дати YYYY-MM-DD задані в UTC, день to включений повністю. min_score фільтрує числовий поріг без сортування. _doc — внутрішній порядок, не хронологія чи релевантність. /v1/item потребує id, а /v1/subreddits приймає prefix і limit без моніторингу поточної активності спільноти.

На сторінці доступно до 100 записів, page не перевищує 100. eq означає точну кількість збігів запиту, gte — нижню межу, unknown — ненадійний підсумок або null. Це не доказ повного вивантаження. Поділ періодів і локальне усунення дублікатів також не встановлюють повноту. Зберігайте обмеження поруч із набором даних; завершення власної черги не означає, що отримана вся історія Reddit.

Обробляйте 400, 401, 402 і 429 відповідно до причини. Некоректні запити не списують баланс, збій джерела повертає резерв, втрачена відповідь може приховувати оплачений успіх. Кожен успішний повтор коштує ще один кредит. До поповнення прочитайте ціни та сторінку ключа: $1 за 1000 успішних запитів, мінімум $50 для платної купівлі. Повторне створення ключа з підтвердженням пароля одразу вимикає попередній; узгодьте оновлення власної конфігурації.

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