Define qué demuestra cada comprobación
Diseña dos recorridos separados: uno para observar la respuesta HTTP pública y otro para recuperar registros históricos protegidos. GET /v1/status no necesita clave ni créditos y devuelve una declaración estática. No comprueba saldo, identidad, búsqueda, cobertura o capacidad. No uses su éxito para autorizar usuarios en tu aplicación ni para convertir todas tus búsquedas pendientes en un supuesto estado saludable del archivo.
Reddit Gateway es un archivo histórico independiente, sin afiliación a Reddit, datos en vivo, escritura o Reddit OAuth. La clave API autentica a tu cliente frente al archivo, no a los usuarios finales de tu propio producto. Define qué usuarios pueden iniciar una búsqueda, qué filtros les permites y cuánto consumo acepta tu sistema. Esos controles son decisiones de tu backend, no funciones de permisos por proyecto suministradas por el archivo.
Guarda la clave en una configuración protegida del servidor y exclúyela de código público, respuestas al navegador y registros. Para recuperación usa X-API-Key: <clave> o Authorization: Bearer <clave>. La cookie Secure HttpOnly del panel de cuenta es independiente. El widget guarda identificadores de factura y usuario en localStorage por hostname, no la clave original; esto no garantiza protección frente a todos los riesgos de tu aplicación.
Restringe solicitudes y valida sus resultados
Fija https://api.redditgateway.com y las rutas admitidas en tu servidor. No aceptes una URL arbitraria del visitante como destino de una solicitud con credenciales. Empieza por https://api.redditgateway.com/v1/search?q=database&subreddit=backend&limit=3, explicando que busca texto en backend con hasta tres registros y no garantiza material pertinente. Consulta la documentación para los filtros y Obtener clave API para registrar la cuenta antes del pago.
Comprueba el resultado HTTP antes de interpretar el cuerpo como datos. Después analiza el JSON y valida data como array, junto con los campos necesarios para tu producto. Distingue transporte fallido, error HTTP, éxito vacío y rechazo de una transformación local. Los registros son planos y sus campos pueden variar. Si parent_id o link_id aparecen, conserva las referencias sin inventar contexto o asumir conversaciones completas.
Usa parámetros permitidos: q, subreddit, author, kind con post o comment, from, to, min_score, limit y page en las rutas de búsqueda. from y to usan YYYY-MM-DD en UTC, filtran created_utc e incluyen todo el día to. min_score filtra sin ordenar. El orden interno _doc no es cronológico, de relevancia o puntuación; ordenar localmente solo reorganiza lo recibido.
Limita trabajo y reintentos con evidencia local
limit y page van de 1 a 100, con una página por solicitud. Lee total con relation: eq indica total exacto de la consulta, gte una cota inferior y unknown un total no fiable, posiblemente null. Desconocido no es cero. Ni un total exacto ni la división de períodos ni la eliminación local de duplicados prueban una descarga completa. Guarda respuesta y parámetros antes de avanzar el progreso.
HTTP 400 requiere corregir parámetros, 401 revisar credenciales, 402 consultar saldo en el panel y 429 espaciar intentos. Puedes definir esperas progresivas y un máximo de reintentos, sin prometer recuperación automática. Las reglas de elegibilidad de prueba son distintas de los límites de frecuencia. Registra resultados y decisiones locales sin incluir secretos, de modo que puedas distinguir un fallo de tu adaptador de uno del origen.
Cada recuperación exitosa cuesta un crédito, incluso vacía o repetida. Las solicitudes inválidas no descuentan saldo y los fallos del origen devuelven la reserva. Una desconexión del cliente puede seguir a un éxito cobrado; otro intento exitoso cuesta otro crédito. Consulta los precios para presupuestar pruebas y páginas. La regeneración exige iniciar sesión y confirmar contraseña e invalida la clave anterior: actualiza tus clientes antes de la siguiente consulta.