Reddit Extract

Які поля можна перенести до вашої таблиці?

Дослідіть невелику відповідь PostgreSQL у Reddit Extract. Розрізняйте заголовок і текст, зберігайте пропуски та визначайте правила власної вихідної таблиці.

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

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

cURL

curl --fail-with-body -H "Authorization: Bearer YOUR_API_KEY" "https://api.redditextract.com/v1/search?q=index&subreddit=PostgreSQL&limit=3"

Штучний приклад фрагмента відповіді

Лише для демонстрації — це не справжні записи архіву.

{
  "data": [
    {
      "kind": "post",
      "subreddit": "PostgreSQL",
      "title": "Demo: checking an index",
      "text": "Fictional example for mapping available fields."
    }
  ]
}

Показано лише поле data. Склад полів може відрізнятися; це не повна відповідь.

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

Для таблиці з матеріалами PostgreSQL корисного заголовка інколи недостатньо: застосунок може очікувати основний текст. Невеликий пошук index у Reddit Extract дає змогу спочатку продумати такий випадок. Мета огляду — визначити, що переносити, де залишати пропуск і які записи відкладати для перевірки.

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

Для першої перевірки використайте https://api.redditextract.com/v1/search?q=index&subreddit=PostgreSQL&limit=3. Параметр q=index задає текстовий пошук, subreddit=PostgreSQL обмежує спільноту, а limit=3 задає верхню межу розміру сторінки. Це не обіцянка трьох результатів і не випадкова вибірка дискусій. Викликайте API зі свого сервера, передаючи доменний ключ через X-API-Key або Authorization: Bearer.

Заголовок не стає основним текстом автоматично

Під час огляду тримайте наявні title і text окремо. Якщо далі потрібен один стовпець вмісту, явно визначте спосіб його формування та збережіть назву вихідного поля. Збіг index у заголовку не доводить наявності цього слова в основному тексті. Використання заголовка замість відсутнього text може бути вашим локальним правилом, але отримане значення не слід подавати як початковий текст запису.

Визначте значення кожного пропуску

Окремо перевіряйте відсутню властивість, явне null, порожній рядок і значення неочікуваного типу. Вони можуть вимагати різної обробки. Відсутній рейтинг не варто мовчки перетворювати на нуль, а брак тексту — на висновок про зміст повідомлення. У власному результаті можна дозволити null або відхилити рядок із причиною; зберігайте можливість порівняти його з початковим об’єктом.

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

Збережіть посилання без вигаданої розмови

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

Для одного запиту доступно щонайбільше 100 записів, а для одного набору умов — щонайбільше 100 сторінок. Проходження цих сторінок не доводить повноти архіву. Фіксуйте межі свого отримання окремо від правил, за якими перетворюєте поля.

Завершіть огляд правилами для застосунку

Збережіть саме отриману відповідь разом із параметрами запиту та власною позначкою часу отримання. Ключ у цей файл не додавайте. Локальна копія дозволяє перевіряти кілька варіантів перетворення без нових звернень до API. Якщо сторінка порожня, зафіксуйте цей результат окремо: він не дає підстав описувати структуру відсутніх записів або підмінювати їх вигаданим прикладом.

Порядок _doc не означає впорядкування за датою, релевантністю чи рейтингом; min_score лише фільтрує. Один успішний запит, навіть із порожнім результатом, коштує один кредит. За $1 надається 1000 успішних запитів, а мінімальне платне поповнення $50 додає 50000 кредитів. Платні кредити не мають строку дії, підписки немає. Можливі 100 пробних кредитів залежать від спільних мережевих обмежень проти зловживань.

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