Descripción general
Los Status Code Templates
permiten definir dinámicamente el código de estado HTTP que retornará un método
en función del resultado de su ejecución. Esta funcionalidad se configura desde
la vista de edición del método y utiliza plantillas escritas en Jinja para
evaluar condiciones basadas en la respuesta generada.
Objetivo
El propósito de esta
funcionalidad es otorgar control preciso sobre los códigos de respuesta HTTP,
permitiendo alinear la semántica del protocolo con la lógica de negocio del
método.
Funcionamiento
• La plantilla se evalúa
al finalizar la ejecución del método.
• Debe devolver una constante válida de status HTTP. Estos códigos se
encuentran disponibles en la ventana del editor.
• Solo se evalúa cuando la salida proviene de la plantilla estándar.
• Si la salida proviene de una plantilla de error, la plantilla de status no se
ejecuta.
Comportamiento por defecto
Si no se selecciona una
plantilla de status code, el método mantiene su comportamiento original, donde
el código HTTP se determina automáticamente según el tipo de operación y
resultado.
Reglas de implementación
• La plantilla debe
devolver exactamente una constante HTTP válida.
• No debe incluir texto adicional.
• Se recomienda mantener condiciones claras y legibles.
• El editor valida la sintaxis antes de guardar.
- {% if result.data.0.0 ==
"success" %}
- HTTP_STATUS_201
-
{% else %}
- HTTP_STATUS_403
-
{% endif %}
Ejemplo con validación de errores
- {% if result.errors |
length > 0 %}
- HTTP_STATUS_400
-
{% else %}
- HTTP_STATUS_200
-
{% endif %}
Recomendaciones
• Utilizar lógica simple
y mantenible.
• Documentar condiciones complejas.
• Validar plantillas en entornos de prueba.
• Mantener coherencia con estándares REST.
Ventajas
• Mayor control sobre
respuestas HTTP.
• Consistencia en APIs.
• Flexibilidad ante escenarios dinámicos.
• Mejor integración con lógica de negocio.