Referencia
API pública¶
generate_http_request_code
¶
from http_request_codegen import generate_http_request_code
Genera un trozo de código de una petición HTTP para una biblioteca de un lenguaje de programación dado o una interfaz de línea de comandos de un programa, basado en un método HTTP válido y una especificación de parámetros.
Hay algunas peculiaridades concernientes a ciertos métodos:
POST
La mayoría de implementaciones de métodos POST renderizan sus trozos de código diferente, dependiendo del encabezado Content-Types, incluyendo por defecto algunos de los comportamientos según dicho encabezado más usados:
- El comportamiento por defecto, incluso si no lo especificas explícitamente en el encabezado Content-Type es la generación de una petición codificada como
application/x-www-form-urlencoded
. - Si quieres generar una petición codificada como
multipart/form-data
, necesitas especificar los archivos a enviar usando el argumentofiles
. - Si especificas el encabezado Content-Type
application/json
, los parámetros enviados serán ajustados de acuerdo a la petición POST codificada como JSON. - Si especificas el encabezado Content-Type
text/plain
, sólo puedes enviar un parámetro y será ajustado de acordemente siguiendo la implementación.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
language | str | Lenguaje de programación o plataforma del trozo de código resultante. Ver Soporte para comprobar las plataformas y lenguajes de programación soportados. | None |
impl | str | Tipo de implementación usada para el trozo de código. Puede ser una biblioteca, un programa o la API de un lenguaje. Ver Soporte para comprobar las implementaciones soportadas por lenguaje. | None |
method | str | Método HTTP de la petición generada. | 'GET' |
url | str, iterable, callable | Endpoint URL de la petición generada.
| 'http://localhost' |
headers | dict | Mapeo de nombres y valores de encabezados. | {} |
parameters | list | Lista de parámetros para la petición. Cada parámetro debe ser un diccionario. Este diccionario define, para cada parámetro, cual es el nombre del parámetro y como son generados los valores del parámetro:
| [] |
files | dict | Mapeado de archivos a enviar a la URL. Sólo tiene efecto para métodos POST. Si defines este argumento, el encabezado
| {} |
wrap | int | Ancho máximo del trozo de código generado. Si se excede, el código renderizado será convenientemente formateado en múltiples líneas. | 80 |
indent | str | Cadena de indentación usada en el código generado. Si no se define se usará la cadena de indentación más comúnmente usada para la implementación. | None |
quote_char | str | Caracter de puntuación para cadenas usados en el código generado. | "'" |
setup | bool, str | Si es | None |
teardown | str | Trozo de código a incluir después del código de la petición HTTP. | None |
oneline | bool | Renderiza el código en sólo una línea. | False |
seed | int | Semilla usada generando valores aleatorios falsos de parámetros. Útil si quieres generar el mismo conjunto de valores entre diferentes trozos de código. | None |
locale | str | Local usada por la biblioteca faker para localizar los valores aleatorios falsos para los parámetros. | None |
Exceptions:
Type | Description |
---|---|
ValueError | Valor no es un valor válido en su contexto. |
TypeError | Valores no concuerdan con los tipos soportados para ellos. |
ImportError | Función-modulo de Python especificada no puede ser importada con éxito. |
Returns:
Type | Description |
---|---|
str | Trozo de código de petición HTTP. |
generate_http_request_md_fenced_code_block
¶
from http_request_codegen import generate_http_request_md_fenced_code_block
Envuelve la función generate_http_request_code
en un bloque de código Markdown.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fence_string | str | Cadena de caracteres que delimita el inicio y el final del bloque de cógido. No realiza ninguna comprobación sobre si la cadena es válida. | '```' |
**kwargs | Todos los otros argumentos opcionales son pasados a la función | {} |
Examples:
>>> generate_http_request_md_fenced_code_block(setup=False)
"```python\nreq = requests.get('http://localhost')\n```"
>>> generate_http_request_md_fenced_code_block(fence_string='~~~',
... setup=False)
"~~~python\nreq = requests.get('http://localhost')\n~~~"
Returns:
Type | Description |
---|---|
str | Bloque de código Markdown con el trózo de código de la petición dentro. |
lazy_name_by_parameter
¶
from http_request_codegen import lazy_name_by_parameter
Dado un diccionario de opciones de parámetros, retorna el nombre de parámetro correspondiente construido siguiendo las reglas listadas en la documentación del argumento parameters
de la función generate_http_request_code
.
La estrategia de construcción de nombre es comprobar los siguientes atributos en el orden dado:
name
names
Puedes usar esta función para construir los parámetros a un nivel más bajo. Esto puede ser usado, por ejemplo, para añadir los parámetros a una URL generando códigos de métodos GET si una implementación los añade como argumentos de una función.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
parameter_data | dict | Datos de especificación de parámetro. Estan definidos en las secciones name y names de la documentación de la función | required |
seed | int | Semilla usada aleatorizando nombres. | None |
Exceptions:
Type | Description |
---|---|
ValueError | ninguno de los atributos |
Examples:
>>> lazy_name_by_parameter({'name': 'foo'})
'foo'
>>> result = lazy_name_by_parameter({'names': ['foo', 'bar', 'baz']})
>>> result in ['foo', 'bar', 'baz']
True
Returns:
Type | Description |
---|---|
str | Nombre de parámetro. |
lazy_value_by_parameter
¶
from http_request_codegen import lazy_value_by_parameter
Dado un diccionario de opciones de parámetros, retorna el valor correspondiente construido siguiendo las reglas listadas en el argumento parametros
de la documentación de la función generate_http_request_code
.
Por ejemplo, dado {'type': int}
como entrada, la salida será un número aleatorio como cadena.
La estrategia de construcción del valor es comprobar los siguientes atributos en el orden dado:
value
'values'
'faker'
'type'
Si no se pasan ninguno de los atributos previos será tratado como si se hubiera pasado {'type': str}
, retornando una palabra aleatoria.
Puedes usar esta función para construir los parámetros a un nivel más bajo. Esto puede ser usado, por ejemplo, para añadir los parámetros a una URL generando códigos de métodos GET si una implementación los añade como argumentos de una función.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
parameter_data | dict | Datos de especificación de parámetro. Están definidos en las secciones type, value, values y faker del argumento | required |
seed | int | Semilla usada aleatorizando valores. | None |
locale | str | Local usada por los proveedores de | None |
Examples:
>>> lazy_value_by_parameter({'value': 'foo'})
'foo'
>>> result = lazy_value_by_parameter({'values': ['foo', 'bar', 'baz']})
>>> result in ['foo', 'bar', 'baz']
True
>>> result = lazy_value_by_parameter({'type': 'int'})
>>> result.replace('.', '', 1).lstrip('-').isnumeric() and \
... isinstance(result, str)
True
Exceptions:
Type | Description |
---|---|
ImportError | el atributo |
TypeError | el valor del atributo |
ImportError | valor del atributo |
Returns:
Type | Description |
---|---|
str | Valor de parámetro. |