Історичний архів із власною автентифікацією
Reddit API Proxy надає читання незалежного історичного архіву Reddit. Це не офіційний сервіс Reddit, він не пов’язаний із платформою та не є прозорим проксі довільних запитів. Сервіс не обходить обмежень, не переносить сесій Reddit OAuth і не надає живих стрічок, публікації, голосування чи приватних повідомлень. Знайома назва заголовка не робить наявний клієнт Reddit сумісним із контрактом архіву.
Захищене отримання підтримує X-API-Key: <ключ> та Authorization: Bearer <ключ> як альтернативи. В обох випадках передається ключ redditapiproxy.com; Bearer не означає можливості використати токен Reddit OAuth. Зберігайте секрет у захищеній конфігурації сервера, виключайте його з відкритого коду, URL-адрес і журналів. Сесійна cookie Secure HttpOnly панелі облікового запису обслуговує окрему автентифікацію та не замінює заголовка отримання даних.
Перевірте хост, GET-маршрут, дозволені параметри та вибраний заголовок свого клієнта до додавання повторів. Відсутній або недійсний ключ викликає 401; зміна розміру сторінки його не виправляє. Порожній масив data в успішній відповіді відрізняється від відхилених облікових даних. Ні правильний ключ, ні успішний запит не підтверджують повного охоплення, фіксованих дат покриття, незмінності результатів або постійного доступу до конкретного запису.
Порівняйте два заголовки на обмеженому запиті
Приклад: GET https://api.redditapiproxy.com/v1/comments?subreddit=devops&limit=3. subreddit=devops обмежує спільноту, limit=3 запитує щонайбільше три коментарі. Це не обіцянка трьох збігів або повного обговорення. Варіант із заглушкою: curl --request GET --header "X-API-Key: YOUR_API_KEY" "https://api.redditapiproxy.com/v1/comments?subreddit=devops&limit=3". Справжній ключ підставляйте лише у власному захищеному серверному середовищі.
Інший варіант: curl --request GET --header "Authorization: Bearer YOUR_API_KEY" "https://api.redditapiproxy.com/v1/comments?subreddit=devops&limit=3". Це окремі приклади, а не вимога надсилати обидва заголовки одночасно. Якщо виконати обидва запити й обидва завершаться успішно, вони витратять два кредити. Збіг аргументів не гарантує однакових записів і порядку між зверненнями; перевіряйте форму автентифікації окремо від вмісту вибірки.
Синтетичний фрагмент відповіді, лише для демонстрації: {"data":[],"pagination":{"page":1,"limit":3,"total":0,"relation":"eq"},"credits":{"cost":1,"balance":99}}. Справжній запит не виконувався, баланс вигаданий. Збережіть отриману відповідь до перевірки data та перетворення полів. Успішна порожня вибірка коштує один кредит; відсутність записів devops не доводить, що історичних матеріалів цієї спільноти немає поза межами вибірки.
Розділяйте помилку, відповідь і списання
HTTP 400 означає неправильні параметри, 401 — відсутній або недійсний ключ, 402 — нестачу кредитів, 429 — обмеження частоти. До повтору усуньте причину. Некоректні запити не списуються; збій джерела повертає резерв. Тайм-аут або втрата з’єднання може статися після оплаченого успіху, новий успішний запит коштує ще один кредит. Збій власного перетворення чи зберігання не повертає плати за віддалений успіх.
Відповіді вмісту містять плоскі записи, а не зібрані сервером дерева. Наявні parent_id та link_id можуть підтримувати локальне групування без повного ланцюжка батьківських записів. _doc — внутрішній порядок, не хронологія, релевантність чи оцінка. min_score фільтрує без сортування. Запит вмісту повертає до 100 записів, page приймає від 1 до 100 в окремих зверненнях. Обхід і локальне усунення дублікатів не доводять повноти чи унікальності.
Реєстрація використовує електронну пошту та пароль завдовжки 12–72 байти UTF-8; ключ показується один раз одразу, до оплати. Умовні 100 пробних кредитів залежать від загальномережевого захисту від зловживань. Успіх коштує один кредит: $1 за 1000 запитів, мінімум $50 за 50000 платних кредитів. Придбані кредити не спливають, підписок немає. До оплати вивчіть документацію, ціни, сторінку ключа й посібник; безоплатний /v1/status підтверджує лише HTTP-відповідь зі статичним описом.