Reddit Extract

Поясніть походження кожного вихідного значення

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

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

Збережіть невеликий вхід для повторних перевірок

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

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

Запишіть шлях від властивості до стовпця

Опишіть зіставлення так, щоб його можна було перевірити без запуску коду. Для стовпця потрібні спостережувана вихідна властивість, допустимий тип, дія за пропуску та спосіб отримання: копіювання чи обчислення. Наприклад, локальна позначка content_source може містити title або text, а source_page — походити з журналу запитів. Ці назви належать вашій вихідній схемі, а не відповіді API.

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

Позначте обране джерело тексту

Параметр q виконує пошук у title і text. Якщо пошукових слів декілька, вони мають збігтися разом в одному відповідному полі; розподілу слів між двома полями недостатньо. Для q=index огляньте кожне поле окремо та оберіть джерело вмісту. Коли text відсутнє, залиште пропуск або застосуйте описану підстановку title з позначкою походження. Така підстановка не є початковим основним текстом.

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

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

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

Поясніть результат для кожного об’єкта

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

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

Обґрунтуйте наступне отримання

Додаткова сторінка має відповідати конкретній меті. Порядок _doc не відображає час, релевантність чи рейтинг, а min_score лише фільтрує. Межі у 100 записів на запит і 100 сторінок на набір умов не обіцяють повного експорту. Значення eq, gte та unknown позначають точний підсумок, нижню межу та відсутність надійного підсумку. Локальне сортування змінює порядок тільки вже отриманих об’єктів.

Кожне успішне отримання, навіть порожнє, коштує один кредит. Помилка вашого коду після успішної відповіді не скасовує цей виклик; повторна перевірка збереженого входу нового кредиту не потребує. Ціна становить $1 за 1000 успішних запитів, мінімальні $50 додають 50000 платних кредитів, а необов’язкові 100 пробних залежать від умов. Баланс цього домену перевіряйте в кабінеті, не через публічний /v1/status.