Reddit Extract

출력값을 원래 필드까지 추적할 수 있게 만드세요

PostgreSQL 예제로 텍스트 출처, 누락값과 자료형의 매핑 규칙을 정하세요. 다음 조회 전에 저장한 응답으로 규칙을 검증합니다.

API 키 받기

실제로 검토할 응답 보관하기

GET https://api.redditextract.com/v1/search?q=index&subreddit=PostgreSQL&limit=3 으로 작은 응답을 요청할 수 있습니다. index는 텍스트 검색어, PostgreSQL은 커뮤니티, 3은 최대 레코드 수입니다. 날짜 조건은 없으므로 특정 기간의 자료라고 부르지 마세요. Bearer 또는 X-API-Key 헤더는 신뢰할 수 있는 서버에서 설정하고 예제를 공유할 때 실제 키를 제거해야 합니다.

이 서비스는 독립적인 과거 Reddit 아카이브이며 공식 서비스나 실시간 피드가 아닙니다. 첫 응답에서 각 필드의 존재, null과 관찰한 자료형을 적으세요. 이름이 같아도 모든 레코드에 같은 값 형태가 있다고 가정하지 마세요. 원본 한 페이지는 매핑을 시험하는 입력이지 전체 저장소의 스키마를 검증한 자료는 아닙니다. 필요한 필드가 없을 때의 정책도 별도로 정해야 합니다.

원본 응답과 사용한 조회 조건, UTC 조회 시각을 함께 남길 수 있습니다. 그 시각은 게시물 작성 시각이나 서버의 보관 시각과 같지 않습니다. 같은 쿼리를 다른 날 다시 실행해도 같은 레코드나 순서를 받는다고 보장되지 않습니다. 버전을 붙인 로컬 파일도 서버의 고정 스냅샷을 의미하지 않습니다. 실제 받은 자료에만 근거해 출력의 출처를 설명하세요.

원본 필드에서 출력 열까지의 경로 적기

코드를 실행하지 않아도 이해할 수 있는 매핑 명세를 작성하세요. 출력 열마다 관찰한 원본 필드, 허용 자료형, 누락 시 처리와 복사값인지 파생값인지 적습니다. content_source를 title 또는 text를 담는 로컬 표시로 두고 source_page를 자체 요청 기록에서 가져올 수도 있습니다. 이 이름은 출력 열의 이름이며 API가 제공하는 새 응답 필드가 아닙니다.

출력 열마다 원본 필드 이름, 대상 이름, 예상 자료형, 필수 여부와 실패 시 처리 방법을 정하세요. 식별자는 계산용 숫자보다 원래 표현을 유지하는 편이 적절할 수 있습니다. 시각 값은 단위를 확인한 뒤 변환합니다. 필드가 없음, null, 빈 문자열과 숫자 0을 구분하지 않으면 어떤 정보가 원래 없었는지 알 수 없게 됩니다.

제목과 본문 중 무엇을 골랐는지 기록하기

q는 title과 text를 검색합니다. 검색어가 여러 개이면 일치하는 하나의 필드 안에 검색어들이 함께 있어야 하며, 두 필드에 나뉘어 있는 것만으로는 충분하지 않습니다. q=index에서도 각 필드를 별도로 확인한 뒤 내용을 고르세요. text가 없으면 누락 상태를 남기거나 출처를 표시한 명시적 title 대체 규칙을 사용하고, 대체값을 원래 본문과 구분하세요.

자료형 변환 전에 누락 상태 확인하기

숫자처럼 보이는 문자열이나 서로 다른 자료형이 섞인 값은 정책에 따라 검증하세요. 변환이 안 되는 값을 무조건 null로 바꾸기보다 원본과 실패 이유를 별도 기록할 수 있습니다. 필요한 값을 추측해서 채우면 원본에서 받은 정보와 자체 판단이 섞입니다. 공백 제거, 표기 통일이나 시간 변환은 의미에 영향을 줄 수 있으므로 변경 전 값을 함께 보존하는 방법도 검토하세요.

받은 레코드마다 처리 결과 설명하기

플랫 레코드에서 필요한 열만 고르는 일에 대화 트리는 필요하지 않습니다. parent_id와 link_id가 있으면 관계 분석을 위해 로컬 그룹화를 할 수 있지만 선택 사항입니다. 이 항목은 검색 필터가 아니고 빠진 부모를 복원하지도 않습니다. API가 이미 정규화된 목표 테이블이나 검증된 데이터셋을 내보내는 것은 아닙니다. 출력 구조는 여러분이 정의한 규칙의 결과로 표시해야 합니다.

원본을 받은 횟수, 받은 건수, 변환을 통과한 건수와 목적지에 저장한 건수를 따로 세세요. 출력 행이 적어진 이유는 필터뿐 아니라 자체 변환 규칙에 있을 수 있습니다. 저장한 응답에 수정된 규칙을 적용하면 API를 다시 호출하지 않고 비교할 수 있습니다. 반대로 새 조회는 결과가 같아 보여도 별도 호출이므로 원본 버전과 시간도 구분해야 합니다.

합성 테스트임을 분명히 표시하고 제목만 있음, 본문만 있음, 둘 다 있음, 명시적 null, 두 속성 모두 없음의 경우를 시험하세요. 출력값과 출처 표시를 함께 확인합니다. 제외한 레코드는 변경 전 객체와 이유를 보관하세요. 레코드당 최대 한 행을 만드는 변환이라면 채택 수와 제외 수의 합으로 받은 레코드를 설명할 수 있습니다. 이는 전체 아카이브의 건수가 아닙니다.

필드 매핑 검증을 위한 추가 조회의 범위와 비용 정하기

요청당 100개 레코드와 쿼리당 100페이지는 상한입니다. _doc 문서 순서는 시간순, 관련도순이나 점수순이 아닙니다. min_score는 최소 점수 조건입니다. 총계 관계 eq는 정확한 수, gte는 하한, unknown은 알 수 없는 수이며 총계가 null일 수 있습니다. from과 to는 UTC의 YYYY-MM-DD이고 to는 종료일 전체를 포함합니다. 날짜 분할과 중복 제거로 전량 수집을 입증할 수는 없습니다.

성공한 빈 조회도 한 크레딧이고 성공 요청 1,000건은 $1입니다. 유효하지 않은 요청은 차감되지 않으며 상위 시스템 실패의 예약분은 반환됩니다. 시간 초과만으로 서버 실패를 단정하지 말고 성공한 재시도에 추가 비용이 생길 수 있음을 고려하세요. 400, 401, 402와 429를 구분합니다. /v1/status는 무료지만 정적인 설명과 HTTP 응답일 뿐 변환 처리나 자료 가용성의 검사는 아닙니다.