Referencia del SDK de Python

Ver en Markdown

El cliente de Python de OpenWAF: argumentos del constructor, firmas de los métodos, opciones de cambio, request, errores y valores devueltos.

En esta página

openwaf.py es un único módulo para Python 3.8 o posterior que solo usa la biblioteca estándar (urllib). Descárgalo de https://dash.openwaf.dev/v1/sdk/openwaf.py y ponlo junto a tu código o en tu PYTHONPATH.

from openwaf import OpenWAF, OpenWAFError

OpenWAF(token=None, base_url=None, org=None, timeout=60.0)

ArgumentoPor defecto
tokenOPENWAF_TOKEN
base_urlOPENWAF_API_URL; ponla a https://dash.openwaf.dev
orgOPENWAF_ORG; si no, la organización del token
timeout60 segundos por petición
MiembroSignificado
base_url, token, timeoutLos valores en uso.
org_id() -> strLa organización que usan los métodos por defecto (se pide una vez si no está configurada).
request(method, path, *, …)La llamada genérica que hay detrás de cada método (abajo).

Métodos

Cada operación de la API es un método con el nombre de su id de operación en snake_case. Todos los argumentos van con nombre:

owf.list_zones(*, org=None, include=None)
owf.create_record(*, zone, body, reason, org=None, if_match=None, dry_run=None)
owf.revert_zone(*, zone, body, reason, if_match, org=None, dry_run=None)
owf.purge_cache(*, zone, body, org=None, reason=None, dry_run=None)
owf.get_zone_diff(*, zone, org=None, from_=None, to=None)
  • Los parámetros de ruta y de consulta son argumentos con el mismo nombre. Un parámetro cuyo nombre es una palabra reservada de Python lleva un guion bajo: from_.
  • body es un dict (o una lista) que se envía como JSON.
  • Los métodos de escritura reciben reason (X-Change-Reason), if_match (If-Match, una versión int o str) y dry_run (?dry_run=1) cuando su operación los admite; los obligatorios no tienen valor por defecto.
  • Cada método devuelve el cuerpo decodificado: un dict o una list si es JSON, un str si es texto y None si la respuesta está vacía.

Métodos de uso habitual:

TareaMétodo
Zonaslist_zones, get_zone, create_zone, delete_zone
Registros DNSlist_records, create_record, update_record, delete_record, batch_records
Ajustes de borde y reglasget_zone_edge, update_zone_edge, list_rules, create_rule, delete_rule
Historiallist_zone_versions, get_zone_version, get_zone_diff, revert_zone, get_zone_propagation
Cachépurge_cache, list_cache_purges
Auditoríalist_audit

El docstring de cada método da el resumen de la operación y su método y ruta HTTP. La referencia de la API enumera todas las operaciones.

request(method, path, *, …)

res = owf.request("GET", "/v1/orgs/%s/zones" % owf.org_id(), query={"include": "merged"})
ArgumentoSignificado
queryParámetros de consulta; los None se omiten y los booleanos pasan a true/false.
body, content_typeValor JSON, o texto/bytes con otro content_type.
reason, if_match, dry_runOpciones de cambio.
authFalse no envía el token (rutas públicas).
headersCabeceras adicionales.

OpenWAFError

AtributoSignificado
statusEstado HTTP; 0 si no hubo respuesta de la API.
codeCódigo de error de la API, como not_found, invalid, version_conflict; o no_token, org_unresolved, unreachable en los fallos del cliente.
messageEl mensaje.
fieldEl campo de un error de validación, cuando se indica.
bodyEl cuerpo del error decodificado, como {"current_version": 9, …}.

str(e) es código (HTTP estado): mensaje. Ver Gestión de errores.

Última actualización:

↑↓ para moverte↵ para abriresc para cerrar