Documentación de la API


API para Autenticación (Login)

La API /api/login permite obtener un token JWT (JSON Web Token) para autenticarte y acceder a otros endpoints de la API. Para ello, se debe enviar una solicitud POST con un cuerpo en formato JSON que contenga una clave de API válida.

Estructura del Cuerpo de la Solicitud (Login)

Campo Tipo Descripción
apiKey String Clave API válida para autenticar la solicitud.

Ejemplo de Solicitud (Login)

El cuerpo JSON para la solicitud de login debería tener el siguiente formato:


        {
          "apiKey": "tu_api_key_aqui"
        }
      

Ejemplo de Respuesta (Login)

La respuesta de la API será un objeto JSON con un token JWT si la autenticación es exitosa:

Respuesta Exitosa (Login)


        {
          "success": true,
          "message": "Login exitoso",
          "data": {
            "token": "tu_jwt_token_aqui"
          }
        }
      

Respuesta con Error (Login)


        {
          "success": false,
          "message": "API Key no válida"
        }
      

Detalles de los Campos de la Respuesta (Login)

Campo Tipo Descripción
success Booleano Indica si la autenticación fue exitosa.
message String Mensaje que describe el resultado de la solicitud.
data Objeto Contiene el token JWT si la autenticación es exitosa.
token String El token JWT generado para autenticar las solicitudes futuras.

Errores Comunes (Login)

Si se proporciona una clave de API no válida, la respuesta será un error de autenticación:


        {
          "success": false,
          "message": "API Key no válida"
        }
      

Autenticación con el Token JWT

Después de obtener el token JWT mediante el endpoint /api/login, es necesario incluir el token en los headers de las solicitudes a otros endpoints de la API. El token debe ser enviado utilizando el esquema Bearer en el header Authorization.

Ejemplo de cómo enviar el token JWT en los headers de la solicitud:


      Authorization: Bearer "tu_token_jwt_aqui"
      

Recuerda que el token debe ser incluido en cada solicitud para acceder a los endpoints protegidos por autenticación.


API para Monitoreo de Hosts (Ping)

La API /ping permite enviar un conjunto de hosts para realizar un monitoreo básico mediante el protocolo ICMP (ping). Se debe enviar una solicitud POST con un cuerpo en formato JSON que sigue la siguiente estructura:

Estructura del Cuerpo de la Solicitud (Ping)

Campo Tipo Descripción
id Integer Identificador único del host.
name String Nombre del host (identificador amigable).
ip String Dirección IP del host.
packetsToSend Integer Número de paquetes ICMP que se deben enviar al host.

Ejemplo de Solicitud (Ping)

El cuerpo JSON para la solicitud debería tener el siguiente formato:


        [
          {
            "name": "host1",
            "ip": "192.168.1.234",
            "packetsToSend": 4
          },
          {
            "name": "host2",
            "ip": "192.168.1.228",
            "packetsToSend": 3
          }
        ]
    

Ejemplo de Respuesta (Ping)

La respuesta de la API será un arreglo JSON con la siguiente estructura:

Respuesta Exitosa (Ping)


        [
          {
            "id": 1,
            "name": "host1",
            "ip": "192.168.1.234",
            "success": true,
            "result": {
              "min": 0.31,
              "max": 0.527,
              "avg": 0.368,
              "packetsSent": 4,
              "packetsReceived": 4,
              "packetsLost": 0
            }
          }
        ]
      

Respuesta con Error (Ping)


        [
          {
            "id": 1,
            "name": "Equipo 1",
            "ip": "111.111.111.111",
            "success": false,
            "result": {
              "packetsSent": 10,
              "packetsReceived": 0,
              "packetsLost": 10
            },
            "error": "Command execution failed: <nil>"
          }
        ]
      

Detalles de los Campos de la Respuesta (Ping)

Campo Tipo Descripción
id Integer Identificador único del host.
name String Nombre del host.
ip String Dirección IP del host.
success Booleano Indica si el monitoreo fue exitoso.
result Objeto Resultados del ping.
min Float Tiempo mínimo de respuesta (ms).
max Float Tiempo máximo de respuesta (ms).
avg Float Tiempo promedio de respuesta (ms).
packetsSent Integer Número de paquetes enviados.
packetsReceived Integer Número de paquetes recibidos.
packetsLost Integer Número de paquetes perdidos.
error String Mensaje descriptivo sobre el error ocurrido durante el monitoreo (si aplica).

API para Comprobación de Estado HTTP

La API /http permite enviar un conjunto de URLs para verificar sus códigos de estado HTTP. Se debe enviar una solicitud POST con un cuerpo en formato JSON que sigue la siguiente estructura:

Estructura del Cuerpo de la Solicitud (HTTP)

Campo Tipo Descripción
id Integer Identificador único del host.
name String Nombre amigable de la página.
url String URL de la página a verificar.

Ejemplo de Solicitud (HTTP)

El cuerpo JSON para la solicitud debería tener el siguiente formato:


        [
          {
            "name": "Google",
            "url": "https://www.google.com"
          },
          {
            "name": "Página Inexistente",
            "url": "https://www.nonexistentpage.com"
          }
        ]
      

Ejemplo de Respuesta (HTTP)

La respuesta de la API será un arreglo JSON con la siguiente estructura:

Respuesta Exitosa (HTTP)


        [
          {
            "name": "Google",
            "url": "https://www.google.com",
            "success": true,
            "status": 200
          }
        ]
      

Respuesta con Error (HTTP)


        [
          {
            "name": "Página Inexistente",
            "url": "https://www.nonexistentpage.com",
            "success": false,
            "status": 0,
            "error": "Failed to reach the page: Get \"https://www.nonexistentpage.com\": dial tcp: lookup www.nonexistentpage.com on 127.0.0.11:53: no such host"
          }
        ]
      

Detalles de los Campos de la Respuesta (HTTP)

Campo Tipo Descripción
id Integer Identificador único del host.
name String Nombre de la página.
url String URL de la página.
success Booleano Indica si la comprobación fue exitosa.
status Integer Código de estado HTTP de la página. Un valor de 200 indica éxito, mientras que otros valores indican posibles problemas.
error String Mensaje descriptivo sobre el error ocurrido al intentar acceder a la página (si aplica).