Запишіть критерії до зміни клієнта
Оберіть завдання, що використовує давні дописи dataengineering. Перелічіть обов’язкові поля, поведінку за відсутності тексту та залежність від порядку записів. Для кожної вимоги визначте рішення: підтримується безпосередньо, опрацьовується локально чи залишається поза перенесенням. Тоді успішна HTTP-відповідь підтверджуватиме роботу конкретного читання, а не сумісність усього клієнта. Reddit Proxy — незалежний історичний архів, не офіційний інтерфейс поточного стану Reddit.
Збережіть першу відповідь із новим ключем
Виконайте GET https://api.redditproxy.com/v1/posts?subreddit=dataengineering&limit=3 із X-API-Key: <key> або Authorization: Bearer <key>. Обидва заголовки приймають ключ redditproxy.com, а не колишній OAuth-токен. Тримайте секрет на сервері й вилучайте його з діагностичних файлів. Збережіть параметри та відповідь для подальшої локальної обробки; наявність трьох дописів не гарантована.
Список дописів відповідає /v1/posts, коментарів — /v1/comments, пошук — /v1/search, відомий окремий елемент — /v1/item?id=.... Це різні операції з документованими параметрами. Довільна адреса Reddit не перетворюється на підтримуваний запит через заміну домену. Пошук елемента також не завантажує всю пов’язану розмову.
Не заповнюйте прогалини вигаданими даними
Перед перетворенням перевірте масив data та потрібні поля кожного запису. Розрізняйте відсутнє значення, порожній рядок, успішну порожню сторінку й помилку власного перетворювача. Записи плоскі. Наявні parent_id і link_id можуть слугувати локальному групуванню, проте не є фільтрами запиту й не гарантують повної гілки. Перевірте звіт на збереженій сторінці, перш ніж збирати наступні.
Зіставляйте значення умов пошуку
q шукає в title і text: пошукові слова поєднуються умовою AND у межах поля, яке збігається. Розподілу потрібних слів між заголовком і текстом недостатньо. Це не довільна мова запитів. from і to задаються як YYYY-MM-DD у UTC, причому день to включено повністю. min_score лише фільтрує за числовим порогом. Порядок _doc не відображає час, релевантність чи оцінку; локальне сортування стосується тільки вже отриманого набору.
Перегляньте умову завершення обходу
Запит повертає до 100 записів, а набір умов дозволяє до 100 окремо запитуваних сторінок. Читайте total разом із relation: eq — точний підсумок запиту, gte — нижня межа, unknown — ненадійний підсумок, можливо null. Невідоме не дорівнює нулю. Досягнення межі сторінок чи поділ за датами не доводить повноти або відсутності дублів. У нотатках про перенесення залиште перелік отриманих сторінок і відкриті питання щодо охоплення.
Перевірте помилки перед підключенням звіту
За HTTP 400 виправте параметри, за 401 перевірте ключ, за 402 — баланс, за 429 зменште частоту. Успішне читання коштує один кредит, навіть без результатів. Хибний запит не списує кредитів, збій джерела повертає резерв. Клієнт може втратити відповідь після платного успіху сервера; наступний успішний запит коштує ще один кредит. Для перевірки перетворення за можливості повторно опрацьовуйте збережену відповідь локально.
Зіставте звіт із початковими критеріями. Локальна перевірка не обіцяє майбутньої доступності чи незмінності архіву. Операції запису та отримання поточного стану залишаються поза цим адаптером. Публічний /v1/status повідомляє статичний опис сервісу та підтверджує відповідь HTTP-застосунку, не справність джерела. Параметри звіряйте з документацією, витрати — з цінами, доступом керуйте на сторінці ключа.