Plugin de requests

Está definido como un plugin de servidor, para comprobacion de APIs

Introducción

Está definido como un plugin de servidor, para comprobacion de APIs y a su vez  es capaz de realizar peticiones HTTP (GET, POST, PUT) y así integrar de forma sencilla el sistema de alertas con cualquier API.

Tipo: Plugin de servidor

Matriz de compatibilidad

Desarrollado en python 3.8. Se distribuye el binario compilado que no requiere dependencias extra.

Pre requisitos

Para poder ejecutar el plugin es necesario:

Configuración

El plugin se ejecuta definiendo los parámetros correspondientes:

usage: pandora_api_requests  [-h] -u URL [-m {get,post,put,patch,delete,option}] [-hd HEADERS] [-d DATA] [--ssl SSL] [-md {requests,server_plugin}] [--comparison-value COMPARISON_VALUE] [--condition {is_equal_to,is_not_equal_to,is_greater_than,is_less_than,contains,does_not_contain,matches_regex,is_null,is_not_null}]
                        [--down_codes DOWN_CODES [DOWN_CODES ...]] [-v] [--json-path JSON_PATH]

Opciones:
  -u, --url             La URL a la que se enviará la solicitud HTTP. (Ejemplo: http://127.0.0.1)
  -m, --method          {get,post,put,patch,delete,option}
                        El método HTTP que se utilizará (GET, POST, PUT, PATH, DELETE).
  -hd, --headers        Parámetros de valores clave de encabezados en pares de claves separados por comas. (Ejemplo: «Authorization=Bearer abc123token,Content-Type=application/json,X-Request-ID=123456»)
  -d, --data            Parámetros de datos clave-valor en pares clave separados por comas. (Ejemplo: «title=foo,body=bar,userId=1»)
  --ssl SSL             Protocolo de seguridad de Internet
  -md, --mode           {requests,server_plugin} Devuelve la salida para el complemento del servidor; si se elige request, devuelve la salida para el complemento de solicitud
  --comparison-value    El valor con el que comparar el campo filtrado en el json.
  --condition    {is_equal_to,is_not_equal_to,is_greater_than,is_less_than,contains,does_not_contain,matches_regex,is_null,is_not_null}
                 Si se cumple la condición, el valor será crítico (0).
                Condición: is_equal_to | is_not_equal_to | is_greater_than | is_less_than | contains | does_not_contain | matches_regex | is_null | is_not_null
  --down_codes DOWN_CODES [DOWN_CODES ...]
                        Lista de códigos de estado separados por espacios (sin comillas) Ejemplo: --down-codes 404 400
  -v, --verbosity       Añade un indicador para comprobar el valor sin procesar de la respuesta en el terminal
  --json-path           Palabra para buscar en el json

El unico campo obligatorio para la ejecucion es la url de la solicitud.

El modo requests  esta por defecto en la ejecucion asi como el metodo GET, al ejecutar el modo  requests solo se imprimira el json resultante mientras que al utilizar el modo server_plugin imprimira 1 si la ejecucion fue correcta y 0 si no cumplio con la comparacion o fallo la peticion.

Hay una excepción: si se trata de ejecutar la acción de modo server_plugin con el método delete, este no es permitido.


Ejecución manual

Versión binaria:

./pandora_api_requests -u <url objetivo> -m <método> -hd <encabezado de la petición> -d <datos de la petición> -md <modo de las solicitudes> --comparison-value <El valor a comparar> --condition <Si coincide con la condición, el valor> --down_codes <código de estado a comparar> -v <verbosidad mostrar valor sin procesar en la terminal> --json-path <Palabra a buscar en el json>

el plugin se maneja dependiendo de modo requests para devolver la respuesta JSON sin procesar o el código de estado de forma simple y el modo server_plugin diseñado para la integración.

Modo requests:

./pandora_api_requests -u https://jsonplaceholder.typicode.com/posts/1 -m get -md requests -v

image.png

Modo server_plugin:

./pandora_api_requests -u https://jsonplaceholder.typicode.com/posts/1 -m get -md server_plugin --json-path "$.userId"  --condition "is_equal_to" --comparison-value "1" -v

Screenshot 2025-10-06 123735.png