Obtener un artículo de Docs autenticado
Verifica cómo una sesión de la app de Antylogic con sesión iniciada abre un artículo localizado de Docs, recibe el JSON de detalle autenticado del artículo y muestra el mismo contenido en la pantalla nativa de Docs sin cambiar datos de la demo.
En este artículo
Usa esta guía cuando soporte, documentación o QA necesiten confirmar que el usuario demo puede leer el artículo de Accesos de Marea Gran Via a través de la API autenticada de Docs y de la pantalla nativa de Docs.
La acción es de solo lectura. Resuelve el contenido desde el bundle compartido de Docs, normaliza las opciones de locale, plataforma y tema, y devuelve de forma segura la media planificada cuando todavía no se ha generado ningún asset.
Antes de empezar
- El usuario demo ha iniciado sesión en Grupo Marea Demo con el runtime demo de ES seleccionado.
- La cuenta no está pendiente de eliminación, porque las cuentas pendientes de eliminación se bloquean antes de que se ejecute el handler de Docs.
- El bundle de contenido de Docs está disponible en `backend/docs-content/articles.json` o en el `DOCS_CONTENT_PATH` configurado.
- El artículo de ejemplo de ES existe como sección `accesos` y artículo `es-access-users-create-location-internal`.
- Para la verificación nativa, carga primero el índice de Docs para que la pantalla pueda resolver `section_slug` y `slug` antes de pedir el detalle.
Instrucciones
- 1.
Parte de una sesión iniciada en la app
Abre el artículo solo desde un contexto autenticado de la app. `/api/app/docs` requiere el mismo bearer token o cookie `access_token` que usa la app, y el token debe resolver a un ID de usuario no vacío.
- 2.
Resuelve el artículo en Docs
Abre `antylogic://docs/accesos/es-access-users-create-location-internal`. La pantalla nativa de Docs carga el índice, localiza la sección Accesos y el slug del artículo, y entonces habilita la petición de detalle del artículo.
- 3.
Solicita el detalle localizado
Llama a `GET /api/app/docs/accesos/es-access-users-create-location-internal?locale=es-ES&platform=mobile&theme=light`. El locale de la respuesta se normaliza a `es`, la plataforma resuelve a `mobile` y el tema se mantiene en `light`.
- 4.
Revisa el payload del artículo
Confirma que la respuesta incluye `version`, `locale`, `platform`, `theme`, `section` y `article`. El artículo debe ser `Crear un usuario interno de ubicación` en la sección `Accesos`, con los campos intro, prerequisites, steps, validations, result y media.
- 5.
Comprueba el comportamiento de la media planificada
Las entradas de media sin fuente resuelta no deben hacer fallar el artículo. Permanecen como planificadas en el JSON y aparecen en la app como un recurso pendiente en lugar de una reproducción correcta.
- 6.
Trata el contenido ausente como disponibilidad
Si el bundle falta, es inválido o el artículo no se encuentra, gestiónalo como una condición de disponibilidad de documentación o de no encontrado, no como un problema de datos del operador.
- 7.
Prefiere la ruta explícita
Usa la ruta de dos segmentos en manuales y capturas. El fallback de slug único puede devolver otro locale cuando falla la búsqueda específica de locale, y `HEAD` solo comprueba la disponibilidad de la ruta.
Validaciones y límites
- Solo se aceptan `GET` y `HEAD` para el detalle de artículo de Docs.
- `/api/app/docs` requiere autenticación; las rutas públicas de Docs son independientes.
- Las cuentas pendientes de eliminación se bloquean en la puerta compartida de la API de la app.
- Esta ruta de detalle de solo lectura no exige ningún rol de Docs adicional ni permisos de organización o ubicación.
- `locale=es-ES` resuelve a `es`; los locales no soportados o vacíos caen a `es`.
- `platform=mobile`, `iphone`, `ios`, `android` o `phone` resuelven a la plataforma de API `mobile` y a la plataforma de contenido `iphone`.
- Solo `theme=dark` resuelve a oscuro; cualquier otro valor resuelve a claro.
- Para `/api/app/docs/{sectionSlug}/{articleSlug}`, el artículo debe coincidir con el locale normalizado y el slug de sección.
- La coincidencia del slug de artículo acepta el `id` normalizado, el `sourceGuideId` o el título.
- Las URLs de media resueltas se emiten bajo `/api/app/docs/assets/...`; las rutas de fuente de media vacías o inválidas dejan `src` vacío.
- La acción no crea ni actualiza usuarios, ubicaciones, organizaciones, tickets de soporte, contenido de documentación ni assets de media.
Resultado esperado
Una sesión iniciada del usuario demo puede verificar que la respuesta JSON de detalle autenticada y el artículo nativo de Docs representan el mismo artículo de Accesos, incluida la gestión de la media planificada, sin mutar ningún dato operativo.