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:
- Validación de entrada y auditoría
- Conversión de datos del request
- Obtención del origen de la petición
- Verificación de estado de la API
- Consulta del servicio por número de teléfono
- Procesamiento de información de equipos y redes
- 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
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| WSRequestHeader | object | Sí | Cabecera de la petición con información del sistema |
Body
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Audit | object | No | Auditoría de la aplicación |
| Phone | string | Sí | Número de conexión a consultar |
Estructura de objetos anidados:
Estructura de WSRequestHeader
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| System | object | No | Información asociada al sistema |
| Property | array | No | Propiedades asociadas al consumo del servicio web |
Estructura de WSRequestHeader.System
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Name | string | Sí | Nombre del sistema |
| CorrelationID | string | Sí | Identificador de la petición |
| ProcessingServer | string | Sí | Servidor de procesamiento del sistema |
Estructura de WSRequestHeader.Property
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Name | string | Sí | Nombre de la propiedad |
| Value | string | Sí | Valor de la propiedad |
Estructura de Audit
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Canal | string | No | Canal sobre el cual se hizo la petición |
| Id_Device | string | No | Identificador del dispositivo móvil |
| SO | string | No | Sistema operativo del dispositivo |
| IP_Address | string | No | Dirección IP desde donde se realiza la petición |
| WhatsApp_Phone_Number | string | No | Número de Whatsapp desde donde se realiza la petición |
Respuesta esperada (Response)
Headers
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| WSResponseHeader | object | Sí | Cabecera de la respuesta con información del sistema y servicio |
Body
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Service | object | No | Información del servicio |
| Equipments | array | No | ONTs asociadas al servicio |
Estructura de objetos anidados:
Estructura de WSResponseHeader
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| System | object | No | Información asociada al sistema |
| Service | object | No | Información asociada a la ejecución del servicio |
| Property | array | No | Arreglo de propiedades asociado al servicio |
Estructura de WSResponseHeader.System
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Name | string | No | Nombre del sistema |
| CorrelationID | string | No | Identificador de la petición |
| ProcessingServer | string | No | Servidor de procesamiento del sistema |
Estructura de WSResponseHeader.Service
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Status | string | No | Estado de la ejecución del servicio web |
| ResponseDate | DateTime | No | Fecha de la respuesta |
| ProcessingServer | string | No | Servidor de procesamiento de la solicitud |
| StatusDetail | array | No | Detalle del procesamiento de la solicitud |
Estructura de WSResponseHeader.Property
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Name | string | No | Nombre de la propiedad |
| Value | string | No | Valor de la propiedad |
Estructura de Service
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Billing_Account | string | No | Cuenta de facturación del servicio |
| Phone | string | No | Número de conexión del servicio |
| Plan | string | No | Plan asociado al servicio |
| Service_Account | string | No | Cuenta de servicio |
| Technology | string | No | Tecnología asociada al servicio |
Estructura de Equipments
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ACS_Model | string | No | Modelo del ACS |
| Brand | string | No | Marca del equipo |
| Firmware | string | No | Versión del firmware del producto |
| Is_Dual | bool | No | Bandera que determina si es dual o no |
| MAC | string | No | MAC del equipo |
| Model | string | No | Modelo del equipo |
| Networks | array | No | Redes del equipo |
| Serial | string | No | Serial del equipo |
| Status | string | No | Estado del equipo |
| Type | string | No | Tipo de equipo |
| Type_Modem | string | No | Permite identificar si es un Modem o un AP |
Estructura de Equipments.Networks
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ACS_Model | string | No | Modelo acs |
| Dual | bool | No | Bandera que determina si es Dual o no es Dual |
| Firmware | string | No | Firmware de la red |
| Is_Available_Set_Network_Name | bool | No | Bandera que determina si puede actualizar el nombre de red |
| Is_Available_Set_Network_Password | bool | No | Bandera que determina si puede actualizar la contraseña de red |
| Is_Available_Set_Network_Wifi | bool | No | Bandera que determina si puede actualizar la red wifi |
| Network_Name | string | No | Nombre de la red |
| Network_Password | string | No | Contraseña de la red |
| Network_Type | string | No | Tipo de red |
| Network_Status | string | No | Estado de la red |
Manejo de errores
| Código | Descripción | Ejemplo |
|---|---|---|
| ERROR_04 | Error en la conversión de datos del request | "El request es nulo" |
| ERROR_06 | Servicio no encontrado | "No se encontró el servicio asociado al número de teléfono" |
| TIPOLOGIA_ENDPOINT_OFF | API 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)
{
"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
{
"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
{
"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
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
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_v33.3 Secuencia de ejecución
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 ResponsePolí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:
- Implementar cache para consultas frecuentes de servicios
- Optimizar consultas de equipos y redes para reducir latencia
- Agregar validaciones adicionales para números de teléfono
Optimizaciones posibles:
- Implementar paginación para equipos múltiples
- Agregar filtros por tipo de red (2.4/5.0 GHz)
- Implementar consultas asíncronas para equipos múltiples
Consideraciones de mantenimiento importantes:
- Monitoreo de performance de consultas de servicios
- Actualización regular de configuraciones de tipologías
- Mantenimiento de auditorías para cumplimiento
Sugerencias de seguridad aplicables:
- Implementar rate limiting más granular
- Agregar validación de formato de números de teléfono
- Implementar logging de errores más detallado
- Considerar encriptación de contraseñas de red en logs