Muestra las diferencias entre dos versiones de la página.
| — |
ada:howto:sicoferp:factory:new-migracion-sicoferp:machine:api:puntos-finales [2026/05/07 20:07] (actual) 192.168.175.130 creado |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| + | ====== API: puntos finales (visión operativa) ====== | ||
| + | |||
| + | ===== Propósito ===== | ||
| + | |||
| + | Documentar los endpoints HTTP realmente consumidos por ''Machine'' y ''RutaPAE''. | ||
| + | |||
| + | ===== Base URL ===== | ||
| + | |||
| + | * Formato: ''https://{host}/v1.0'' | ||
| + | * Definición en ''MachineData/.../local/Server.kt'' (''Server.BASE_URL'') | ||
| + | * En ''RutaPAE'', el fallback es ''https://${BuildConfig.DEFAULT_API_HOST}/v1.0'' | ||
| + | |||
| + | ===== Endpoints consumidos por Machine ===== | ||
| + | |||
| + | ^ Método ^ Endpoint ^ Consumido desde ^ Propósito ^ | ||
| + | | ''POST'' | ''/machines'' | ''Machine.ensureMachineIdRegistered'' | Registrar/recrear máquina remota | | ||
| + | | ''POST'' | ''/health-checks'' | ''HealthCheck'' | Latido operativo del dispositivo | | ||
| + | | ''POST'' | ''/logs'' | ''SyncLogs'' | Envío de logs remotos | | ||
| + | | ''GET'' | ''/machine-enrollments?page={p}&size={s}&machineId={id}&machine.id={id}'' | ''SyncMachineEnrollment'' | Sincronizar jornadas/sedes de la máquina | | ||
| + | | ''GET'' | ''/beneficiaries-enrollments?page={p}&size={s}&campusOfferIds={ids}'' | ''SyncBeneficiaries'' | Descarga paginada de beneficiarios por oferta | | ||
| + | | ''GET'' | ''/photos/{beneficiaryId}/beneficiary?nameFrom=machine'' | ''SyncBeneficiaries'' | Descargar foto de beneficiario | | ||
| + | | ''GET'' | ''/beneficiaries?page={p}&size={s}&machineEnrollmentId={id}'' | ''MachineEndpoints'' | Consultas de beneficiarios por jornada máquina | | ||
| + | | ''GET'' | ''/beneficiaries?page={p}&size={s}&institutionContractId={id}'' | ''MachineEndpoints'' | Consultas por contrato institucional | | ||
| + | | ''GET'' | ''/beneficiaries?page={p}&size={s}&sinceModified={ts}'' | ''MachineEndpoints'' | Delta de beneficiarios por fecha de modificación | | ||
| + | | ''GET'' | ''/beneficiaries?page={p}&size={s}&beneficiaryEnrollmentIds={ids}'' | ''MachineEndpoints'' | Consulta por ids de matrícula | | ||
| + | | ''GET'' | ''/beneficiaries-enrollments?page={p}&size={s}&beneficiaryId={id}'' | ''MachineEndpoints'' | Matrículas por beneficiario | | ||
| + | | ''GET'' | ''/campuses?page={p}&size={s}&campusOfferIds={ids}'' | ''MachineEndpoints'' | Resolver sedes por ofertas | | ||
| + | | ''GET'' | ''/campus-offers?page={p}&size={s}&ids={ids}'' | ''MachineEndpoints'' | Resolver ofertas por ids | | ||
| + | | ''GET'' | ''/modalities?page={p}&size={s}&campusOfferIds={ids}'' | ''MachineEndpoints'' | Resolver modalidades por ofertas | | ||
| + | | ''GET'' | ''/minuta-menu-dues?page={p}&size={s}&modality.id={ids}'' | ''MachineEndpoints'' | Resolver minuta/cuotas por modalidad | | ||
| + | | ''GET'' | ''/minuta-menu-dues/delivery-goals?since={yyyy-MM-dd}&until={yyyy-MM-dd}&campusId={id}'' | ''SyncDeliveryGoals'' | Sincronizar metas de entrega | | ||
| + | | ''GET'' | ''/shifts?page={p}&size={s}&campusOfferIds={ids}'' | ''MachineEndpoints'' | Resolver turnos por ofertas | | ||
| + | | ''PATCH'' | ''/beneficiaries/{beneficiaryId}'' | ''MachineEndpoints.patchBeneficiary'' | Actualizar beneficiario | | ||
| + | | ''PATCH'' | ''/minuta-menu-dues/{minutaMenuDueId}'' | ''MachineEndpoints.patchMinutaMenuDue'' | Actualizar minuta/cuota | | ||
| + | | ''POST'' | ''/deliveries/data'' | ''SyncDeliveries.postDeliveryData'' | Subir datos de entrega | | ||
| + | | ''POST'' | ''/deliveries/photos'' | ''SyncDeliveries.postDeliveryPhotos'' | Subir evidencia fotográfica | | ||
| + | |||
| + | ===== Endpoints consumidos por RutaPAE ===== | ||
| + | |||
| + | ^ Método ^ Endpoint ^ Consumido desde ^ Propósito ^ | ||
| + | | ''POST'' | ''/deliveries/data'' | ''RutaPAEDomain.SyncDeliveries.sendDeliveryData'' | Subir datos de entrega desde ruta | | ||
| + | | ''POST'' | ''/deliveries/photos'' | ''RutaPAEDomain.SyncDeliveries.sendDeliveryPhotos'' | Subir fotos de entrega desde ruta | | ||
| + | |||
| + | Notas de RutaPAE: | ||
| + | |||
| + | * ''RutaPAE'' puede usar ''delivery.url'' y ''delivery.photosUrl'' almacenados por registro. | ||
| + | * Si esos campos no están presentes, usa fallback al host por defecto (''DEFAULT_API_HOST'') en ''v1.0''. | ||
| + | |||
| + | ===== Consideraciones operativas ===== | ||
| + | |||
| + | * La entrega se valida/persiste primero en local; HTTP sincroniza después. | ||
| + | * Los errores HTTP no deben bloquear la captura en campo. | ||
| + | * Hay manejo explícito de conflictos ''208'' (entrega ya existente). | ||
| + | * Para fotos de entrega existe reintento por consistencia eventual cuando el backend responde ''404'' temporal. | ||
| + | |||
| + | ===== Flujo paso a paso ===== | ||
| + | |||
| + | Para ver el orden de ejecución, paralelismo, condiciones de disparo y cómo impacta el filtrado de jornadas en ''ShiftSelectionScreen'', revisar: | ||
| + | |||
| + | * [[ada:howto:sicoferp:factory:new-migracion-sicoferp:machine:..:flujos-clave:flujo-de-sincronizacion-http|Flujo De Sincronizacion Http]] | ||
| + | |||
| + | ===== Fuentes de verdad ===== | ||
| + | |||
| + | * ''MachineData/src/main/java/co/ada/data/local/Server.kt'' | ||
| + | * ''MachineDomain/src/main/java/co/ada/domain/network/request/MachineEndpoints.kt'' | ||
| + | * ''MachineDomain/src/main/java/co/ada/domain/network/request/SyncMachineEnrollment.kt'' | ||
| + | * ''MachineDomain/src/main/java/co/ada/domain/network/request/SyncBeneficiaries.kt'' | ||
| + | * ''MachineDomain/src/main/java/co/ada/domain/network/request/SyncDeliveries.kt'' | ||
| + | * ''MachineDomain/src/main/java/co/ada/domain/network/request/SyncDeliveryGoals.kt'' | ||
| + | * ''MachineDomain/src/main/java/co/ada/domain/network/request/SyncLogs.kt'' | ||
| + | * ''MachineDomain/src/main/java/co/ada/domain/network/request/HealthCheck.kt'' | ||
| + | * ''MachineDomain/src/main/java/co/ada/domain/util/Machine.kt'' | ||
| + | * ''RutaPAEDomain/src/main/java/co/ada/rutapaedomain/network/request/SyncDeliveries.kt'' | ||
| + | |||
| + | ===== Ultima verificacion ===== | ||
| + | |||
| + | * Fecha: ''2026-04-23'' | ||
| + | * Verificado contra definición de URLs y consumidores HTTP activos en dominio. | ||