Reddit Fetch
Вибір мови

Дайте трьом коментарям зрозуміле місце на екрані

Побудуйте перегляд історичних коментарів через серверний fetch: від приватного налаштування ключа до перевірки HTTP, JSON і станів екрана.

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

Приклад запиту

JavaScript

const response = await fetch("https://api.redditfetch.com/v1/comments?subreddit=javascript&limit=3", {
  headers: { Authorization: "Bearer YOUR_API_KEY" }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const payload = await response.json();
console.log(payload);

Почніть із потреби читача

Перший перегляд має відповісти на просте запитання: які доступні фрагменти може показати ваш застосунок? Reddit Fetch відкриває JavaScript-розробникам незалежний історичний архів Reddit. Оберіть одну спільноту й заздалегідь вирішіть, що побачить читач, коли тексту бракуватиме. Тоді кожне рішення під час отримання даних матиме конкретну мету, а порожній екран не стане несподіванкою для користувача.

Для прикладу виконайте GET https://api.redditfetch.com/v1/comments?subreddit=javascript&limit=3. Значення subreddit=javascript визначає спільноту, а limit=3 просить щонайбільше три коментарі. Ліміт не обіцяє трьох заповнених карток: записів може бути менше або зовсім не бути. Навіть три отримані фрагменти не обов’язково належать до однієї розмови, тому сусідство на екрані не варто видавати за зв’язок між ними.

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

Запускайте fetch у серверному процесі Node.js. Ключ REDDIT_FETCH_API_KEY беріть із захищених налаштувань і перевіряйте його наявність до звернення. Придатні обидва заголовки: Authorization: Bearer <key> та X-API-Key: <key>. Позначка <key> означає ваш збережений секрет. Він потрібний серверу, але не має потрапляти до JavaScript-коду, який завантажує браузер відвідувача.

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

Порожньо й не вдалося — різні повідомлення

Успішне завершення fetch не гарантує успішного HTTP-статусу. Перевірте response.ok, потім розберіть JSON і потрібні поля. Мережевий виняток утворює іншу гілку: відповіді для перевірки може не бути. Збій декодування JSON також не означає відсутності коментарів. Розрізняючи ці етапи, ви зможете дати читачеві чесне повідомлення, а розробнику — корисну діагностику.

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

Наступне оновлення має свою ціну

Кожне успішне отримання коштує один кредит, зокрема й порожнє. Тариф — $1 за 1000 успішних запитів; мінімальні $50 дають 50000 платних кредитів. Пробні кредити залежать від відповідності умовам. Збережену локальну копію можна показати без нового звернення, проте успішне оновлення витратить ще один кредит, навіть коли видимі фрагменти не змінилися.

Це незалежний від Reddit історичний архів без офіційного зв’язку з платформою та без потоку свіжих коментарів. Повнота й постійна доступність не гарантовані. Позначте походження даних і не подавайте архівний порядок як сортування від найновішого. Сторінка ключа допоможе налаштувати доступ, посібник пояснить обробку відповіді, а документація уточнить формат записів і обмеження запитів.