Skip to content

Consulta de Información WiFi - soporte1n-v3-getwifi

Información del Servicio

Endpoint: /api/soporte1n/v3/getwifi
Método: POST
Versión: v3
Categoría: Soporte Técnico

Documentación del Servicio

Descripción general

El servicio soporte1n-v3-getwifi es un endpoint para consultar la información asociada a la red wifi como nombre de red, estado de red, MAC, serial de la ONT, entre otros. A diferencia de la versión 2, esta versión permite la consulta de wifi para redes 2.4 y 5.0 GHz.

Categoría de negocio: Soporte Técnico y Gestión de Redes WiFi.

Casos de uso principales:

  • Consulta de información de equipos ONT (Optical Network Terminal)
  • Obtención de datos de redes WiFi 2.4 y 5.0 GHz
  • Verificación de estado de equipos y redes
  • Consulta de configuraciones de red WiFi

Especificación técnica

  • Endpoint completo: /api/soporte1n/v3/getwifi
  • Método HTTP: POST
  • Capas involucradas:
    • Controlador: Soporte1NController.GetWifi_v3
    • Lógica de negocio: Soporte1NBusiness.GetWifi_v3
    • Acceso a datos: ServiceUtil.Get_By_Phone

Flujo de procesamiento:

  1. Validación de entrada y auditoría
  2. Conversión de datos del request
  3. Obtención del origen de la petición
  4. Verificación de estado de la API
  5. Consulta del servicio por número de teléfono
  6. Procesamiento de información de equipos y redes
  7. Generación de respuesta estructurada

Dependencias principales:

  • ServiceUtil para consulta de servicios
  • ConfigurationUtil para validaciones
  • AuditUtil para auditoría
  • EquipmentModel y NetworkModel para datos de equipos

Consideraciones de seguridad:

  • Validación de origen de petición
  • Auditoría completa de transacciones
  • Control de acceso por configuración
  • Validación de parámetros de entrada

Parámetros de entrada (Request)

Headers

CampoTipoObligatorioDescripción
WSRequestHeaderobjectCabecera de la petición con información del sistema

Body

CampoTipoObligatorioDescripción
AuditobjectNoAuditoría de la aplicación
PhonestringNúmero de conexión a consultar

Estructura de objetos anidados:

Estructura de WSRequestHeader

CampoTipoObligatorioDescripción
SystemobjectNoInformación asociada al sistema
PropertyarrayNoPropiedades asociadas al consumo del servicio web

Estructura de WSRequestHeader.System

CampoTipoObligatorioDescripción
NamestringNombre del sistema
CorrelationIDstringIdentificador de la petición
ProcessingServerstringServidor de procesamiento del sistema

Estructura de WSRequestHeader.Property

CampoTipoObligatorioDescripción
NamestringNombre de la propiedad
ValuestringValor de la propiedad

Estructura de Audit

CampoTipoObligatorioDescripción
CanalstringNoCanal sobre el cual se hizo la petición
Id_DevicestringNoIdentificador del dispositivo móvil
SOstringNoSistema operativo del dispositivo
IP_AddressstringNoDirección IP desde donde se realiza la petición
WhatsApp_Phone_NumberstringNoNúmero de Whatsapp desde donde se realiza la petición

Respuesta esperada (Response)

Headers

CampoTipoObligatorioDescripción
WSResponseHeaderobjectCabecera de la respuesta con información del sistema y servicio

Body

CampoTipoObligatorioDescripción
ServiceobjectNoInformación del servicio
EquipmentsarrayNoONTs asociadas al servicio

Estructura de objetos anidados:

Estructura de WSResponseHeader

CampoTipoObligatorioDescripción
SystemobjectNoInformación asociada al sistema
ServiceobjectNoInformación asociada a la ejecución del servicio
PropertyarrayNoArreglo de propiedades asociado al servicio

Estructura de WSResponseHeader.System

CampoTipoObligatorioDescripción
NamestringNoNombre del sistema
CorrelationIDstringNoIdentificador de la petición
ProcessingServerstringNoServidor de procesamiento del sistema

Estructura de WSResponseHeader.Service

CampoTipoObligatorioDescripción
StatusstringNoEstado de la ejecución del servicio web
ResponseDateDateTimeNoFecha de la respuesta
ProcessingServerstringNoServidor de procesamiento de la solicitud
StatusDetailarrayNoDetalle del procesamiento de la solicitud

Estructura de WSResponseHeader.Property

CampoTipoObligatorioDescripción
NamestringNoNombre de la propiedad
ValuestringNoValor de la propiedad

Estructura de Service

CampoTipoObligatorioDescripción
Billing_AccountstringNoCuenta de facturación del servicio
PhonestringNoNúmero de conexión del servicio
PlanstringNoPlan asociado al servicio
Service_AccountstringNoCuenta de servicio
TechnologystringNoTecnología asociada al servicio

Estructura de Equipments

CampoTipoObligatorioDescripción
ACS_ModelstringNoModelo del ACS
BrandstringNoMarca del equipo
FirmwarestringNoVersión del firmware del producto
Is_DualboolNoBandera que determina si es dual o no
MACstringNoMAC del equipo
ModelstringNoModelo del equipo
NetworksarrayNoRedes del equipo
SerialstringNoSerial del equipo
StatusstringNoEstado del equipo
TypestringNoTipo de equipo
Type_ModemstringNoPermite identificar si es un Modem o un AP

Estructura de Equipments.Networks

CampoTipoObligatorioDescripción
ACS_ModelstringNoModelo acs
DualboolNoBandera que determina si es Dual o no es Dual
FirmwarestringNoFirmware de la red
Is_Available_Set_Network_NameboolNoBandera que determina si puede actualizar el nombre de red
Is_Available_Set_Network_PasswordboolNoBandera que determina si puede actualizar la contraseña de red
Is_Available_Set_Network_WifiboolNoBandera que determina si puede actualizar la red wifi
Network_NamestringNoNombre de la red
Network_PasswordstringNoContraseña de la red
Network_TypestringNoTipo de red
Network_StatusstringNoEstado de la red

Manejo de errores

CódigoDescripciónEjemplo
ERROR_04Error en la conversión de datos del request"El request es nulo"
ERROR_06Servicio no encontrado"No se encontró el servicio asociado al número de teléfono"
TIPOLOGIA_ENDPOINT_OFFAPI deshabilitada"El servicio se encuentra temporalmente deshabilitado"

Análisis de Componentes

Modelos y componentes

Modelos base utilizados:

  • BaseRequestGetWifi_v3: Modelo de request principal
  • BaseResponseGetWifi_v3: Modelo de response principal
  • GetWifiServiceResponse_v3: Información del servicio
  • GetWifiResponseEquipment_v3: Información de equipos ONT
  • GetWifiResponseNetwork_v3: Información de redes WiFi

Utilidades y servicios comunes:

  • ServiceUtil: Para consulta de servicios por número de teléfono
  • ConfigurationUtil: Para validaciones y configuraciones
  • AuditUtil: Para auditoría de transacciones

Patrones de diseño implementados:

  • Singleton pattern en Soporte1NBusiness
  • Factory pattern para creación de modelos de respuesta
  • Strategy pattern para manejo de diferentes tipos de equipos

Componentes reutilizados:

  • BotBaseRequestHeader/BotBaseResponseHeader para cabeceras estándar
  • Audit para auditoría de peticiones
  • ServiceModel para información de servicios

Referencias cruzadas:

  • Soporte1NController para endpoints relacionados
  • EquipmentModel para datos de equipos
  • NetworkModel para datos de redes

Ejemplos de Request/Response

Solicitud (request)

json
{
  "WSRequestHeader": {
    "System": {
      "name": "MAX",
      "correlationID": "MAX-0.19422572411134875",
      "processingServer": null
    },
    "Property": [
      {
        "name": null,
        "value": null
      }
    ]
  },
  "WSRequestBody": {
    "Phone": "6016450000",
    "Audit": {
      "Canal": "directline",
      "IP_Address": "169.60.82.89",
      "IP_Latitud": "4.8094",
      "IP_Longitude": "-74.0980",
      "IP_City": "COTA",
      "IP_Country": "COLOMBIA",
      "Date": "2025-07-18",
      "Hour": "14:53:42",
      "WhatsApp_Phone_Number": null,
      "Facebook_User": "",
      "Twitter_User": ""
    }
  }
}

Respuesta exitosa

json
{
  "WSResponseHeader": {
    "System": {
      "name": "MAX",
      "correlationID": "MAX-0.19422572411134875",
      "processingServer": null
    },
    "Service": {
      "status": "OK",
      "responseDate": "2025-07-18T14:53:44.3409153Z",
      "processingServer": null,
      "statusDetail": [
        {
          "errorCode": "OK_01",
          "errorDetailCode": "La solicitud fue exitosa",
          "errorMessage": "La solicitud MAX-0.19422572411134875 fue exitosa",
          "errorMessageUser": null
        }
      ]
    },
    "Property": [
      {
        "name": null,
        "value": null
      },
      {
        "name": null,
        "value": null
      }
    ]
  },
  "WSResponseBody": {
    "Service": {
      "Billing_Account": "15052955186",
      "Phone": "6016450000",
      "Plan": "TRIO 500M TV PLUS HOG V2 ",
      "Service_Account": "CS-1050907",
      "Technology": "FTTH"
    },
    "Equipments": [
      {
        "ACS_Model": "XC220-G3v",
        "Brand": "TP-LINK",
        "Firmware": "1.5.0 0.8.0 v60a1.0 Build 250106 Rel.42797n",
        "Is_Dual": true,
        "MAC": "5C628B981C88",
        "Model": "XC220-G3V",
        "Networks": [
          {
            "ACS_Model": "XC220-G3v",
            "Dual": false,
            "Firmware": "1.5.0 0.8.0 v60a1.0 Build 250106 Rel.42797n",
            "Is_Available_Set_Network_Name": true,
            "Is_Available_Set_Network_Password": true,
            "Is_Available_Set_Network_Wifi": true,
            "Network_Name": "",
            "Network_Password": "",
            "Network_Type": "2.4",
            "Network_Status": "Apagado"
          },
          {
            "ACS_Model": "XC220-G3v",
            "Dual": true,
            "Firmware": "1.5.0 0.8.0 v60a1.0 Build 250106 Rel.42797n",
            "Is_Available_Set_Network_Name": true,
            "Is_Available_Set_Network_Password": true,
            "Is_Available_Set_Network_Wifi": true,
            "Network_Name": "",
            "Network_Password": "",
            "Network_Type": "5.0",
            "Network_Status": "Apagado"
          }
        ],
        "Serial": "TPLG8B981C88",
        "Status": "Encendido",
        "Type": "CPE-ONT",
        "Type_Modem": "Modem"
      }
    ]
  }
}

Respuesta de error

json
{
  "WSResponseHeader": {
    "System": {
      "Name": "KIOSKOS",
      "CorrelationID": "KIOSKOS-20241219-08313226",
      "ProcessingServer": "SRV-API-01"
    },
    "Service": {
      "Status": "ERROR",
      "ResponseDate": "2024-12-19T08:31:32.260Z",
      "ProcessingServer": "SRV-API-01",
      "StatusDetail": [
        {
          "ErrorCode": "ERROR_06",
          "ErrorMessage": "No se encontró el servicio asociado al número de teléfono",
          "ErrorMessageUser": "El número de teléfono no está registrado en nuestros sistemas"
        }
      ]
    },
    "Property": []
  },
  "WSResponseBody": {
    "Service": null,
    "Equipments": null
  }
}

Diagramas Técnicos

3.1 Flujo de datos

mermaid
graph TD
  A[Recepción de la solicitud] --> B[Soporte1NController.GetWifi_v3]
  B --> C[Soporte1NBusiness.GetWifi_v3]
  C --> D[Auditoría de entrada]
  D --> E[Conversión de datos]
  E --> F[Obtención del origen]
  F --> G[Verificación de API]
  G --> H[Consulta de servicio]
  H --> I[Procesamiento de equipos]
  I --> J[Generación de respuesta]
  J --> K[Auditoría de salida]
  K --> L[Respuesta al cliente]

3.2 Arquitectura de clases

mermaid
classDiagram
  class Soporte1NController {
    +GetWifi_v3(BaseRequestGetWifi_v3)
  }
  class Soporte1NBusiness {
    +GetWifi_v3(BaseRequest, string)
  }
  class ServiceUtil {
    +Get_By_Phone(RequestModel, string, bool)
  }
  class GetWifiResponse_v3 {
    +Service GetWifiServiceResponse_v3
    +List~GetWifiResponseEquipment_v3~ Equipments
  }
  class GetWifiResponseEquipment_v3 {
    +string ACS_Model
    +string Brand
    +string Firmware
    +bool? Is_Dual
    +List~GetWifiResponseNetwork_v3~ Networks
  }
  Soporte1NController --> Soporte1NBusiness
  Soporte1NBusiness --> ServiceUtil
  Soporte1NBusiness --> GetWifiResponse_v3
  GetWifiResponse_v3 --> GetWifiResponseEquipment_v3

3.3 Secuencia de ejecución

mermaid
sequenceDiagram
  participant Cliente
  participant Soporte1NController
  participant Soporte1NBusiness
  participant ServiceUtil
  participant ConfigurationUtil
  participant AuditUtil
  Cliente->>Soporte1NController: POST /api/soporte1n/v3/getwifi
  Soporte1NController->>Soporte1NBusiness: GetWifi_v3(request, request_name)
  Soporte1NBusiness->>AuditUtil: Save_Request()
  Soporte1NBusiness->>ConfigurationUtil: Get_Origin()
  Soporte1NBusiness->>ConfigurationUtil: Is_Api_Turned_On()
  Soporte1NBusiness->>ServiceUtil: Get_By_Phone()
  ServiceUtil-->>Soporte1NBusiness: ServiceModel
  Soporte1NBusiness->>Soporte1NBusiness: Procesar equipos y redes
  Soporte1NBusiness->>AuditUtil: Save_Get_Wifi()
  Soporte1NBusiness-->>Soporte1NController: BaseResponseGetWifi_v3
  Soporte1NController-->>Cliente: JSON Response

Políticas y Consideraciones

Políticas de seguridad

Mecanismos de autenticación y autorización:

  • Validación de origen de petición mediante ConfigurationUtil
  • Control de acceso por configuración de API
  • Auditoría completa de todas las transacciones

Validaciones de seguridad implementadas:

  • Validación de parámetros de entrada obligatorios
  • Verificación de estado de la API antes del procesamiento
  • Control de acceso por tipologías de configuración

Límites de tasa (rate limits):

  • Control por configuración de tipologías
  • Auditoría de todas las peticiones para monitoreo

SLAs aplicables:

  • Tiempo de respuesta esperado: < 2 segundos
  • Disponibilidad: 99.9%
  • Tolerancia a fallos: Configurada por tipologías

Recomendaciones y mejores prácticas

Puntos de mejora específicos en el código:

  1. Implementar cache para consultas frecuentes de servicios
  2. Optimizar consultas de equipos y redes para reducir latencia
  3. Agregar validaciones adicionales para números de teléfono

Optimizaciones posibles:

  1. Implementar paginación para equipos múltiples
  2. Agregar filtros por tipo de red (2.4/5.0 GHz)
  3. Implementar consultas asíncronas para equipos múltiples

Consideraciones de mantenimiento importantes:

  1. Monitoreo de performance de consultas de servicios
  2. Actualización regular de configuraciones de tipologías
  3. Mantenimiento de auditorías para cumplimiento

Sugerencias de seguridad aplicables:

  1. Implementar rate limiting más granular
  2. Agregar validación de formato de números de teléfono
  3. Implementar logging de errores más detallado
  4. Considerar encriptación de contraseñas de red en logs