base_api
app.common.http.base_api
Módulo de Python para consumir url's extenas, utilizando urllib3. No modifiques esta clase directamente, revisa los módulos:
app.common.http.graphql
app.common.http.rest
app.common.http.xml
para realizar implementaciones personalizadas.
Para más información, te recomendamos leer la documentación del Proyecto.
- https://urllib3.readthedocs.io/en/stable/user-guide.html
- https://urllib3.readthedocs.io/en/stable/reference/urllib3.response.html
- https://urllib3.readthedocs.io/en/stable/advanced-usage.html
- https://urllib3.readthedocs.io/en/stable/reference/urllib3.util.html
- https://medium.com/@technige/what-does-requests-offer-over-urllib3-in-2022-e6a38d9273d9
BaseApiClient
Genera una instancia base de urllib3.request
para hacer peticiones a url's externas. Este objeto maneja todos los detalles de la configuración de urllib3 para realizarlas de forma sencilla.
Attributes:
Name | Type | Description |
---|---|---|
base_uri | str | Fija la url base para el consumo de peticiones. |
_default_headers | dict[str, Any] | un diccionario con la información de las cabeceras |
_json_resp | Any | un objeto para almacenar respuestas en formato json |
time_out | int | el tiempo de espera de la conexión, por defecto 60 segundos |
retries | int | el número de reintentos permitidos, por defecto 3 |
req | Optional[BaseHTTPResponse] | una instancia de |
Notes
esta clase no se utiliza directamente, revise los módulos:
app.common.http.graphql
app.common.http.rest
app.common.http.xml
__init__(base_uri=None)
Constructor de la clase BaseApiClient
Parameters:
Name | Type | Description | Default |
---|---|---|---|
base_uri | str | la url base, por defecto | None |
set_headers(custom_headers=None)
Establece 'Content-Type: application/json'
como cabecera por defecto y permite añadir otro diccionario con cabeceras, sí el parámetro custom_headers
, es enviado.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
custom_headers | dict[str, Any] | permite añadir otro diccionario con cabeceras, por defecto | None |
Returns:
Type | Description |
---|---|
Optional[dict[str, Any]] | un diccionario con las nuevas cabeceras ó |
Examples:
get_json_data()
basic_auth(username, passwd)
Crea una cabecera de autorización Basic
. Como el ID de usuario y la contraseña se transmiten a través de la red como texto sin cifrar (está codificado en base64, pero base64
es una codificación reversible
), el esquema de autenticación básica no es seguro
. Se debe utilizar HTTPS/TLS
con la autenticación básica. Sin estas mejoras de seguridad adicionales, la autenticación básica no debe utilizarse para proteger información sensible o valiosa
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
username | str | el nombre del usuario | required |
passwd | str | la contraseña | required |
Notes
- Puede generar inconvenientes si se usa otra cabecera 'Authorization' en la solicitud. ejemplo:
'Authorization: Bearer XXXX'
Returns:
Type | Description |
---|---|
Optional[dict[str, Any]] | un diccionario con las nuevas cabeceras ó |
Examples: