El complemento custom-response devuelve códigos de estado, encabezados y cuerpos HTTP personalizados. Úselo para crear respuestas simuladas o sobrescribir las respuestas de códigos de estado específicos, por ejemplo, para devolver un mensaje personalizado cuando se activa una política de limitación de velocidad.
Tipo de complemento
Complemento relacionado con el protocolo de transmisión.
Campos
|
Campo |
Tipo de dato |
Obligatorio |
Valor predeterminado |
Descripción |
|
status_code |
number |
No |
200 |
Código de estado HTTP personalizado. |
|
headers |
array of string |
No |
- |
Encabezados de respuesta HTTP personalizados. Separe cada par clave-valor con |
|
body |
string |
No |
- |
Cuerpo de la respuesta HTTP personalizada. |
|
enable_on_status |
array of number |
No |
- |
Código de estado HTTP que activa la respuesta personalizada. Si deja este campo vacío, la respuesta personalizada se aplica a todas las solicitudes sin importar el código de estado original. |
Ejemplos
Devolver una respuesta personalizada en escenarios de respuesta simulada
status_code: 200
headers:
- Content-Type=application/json
- Hello=World
body: "{\"hello\":\"world\"}"
Esta configuración devuelve la siguiente respuesta:
HTTP/1.1 200 OK
Content-Type: application/json
Hello: World
Content-Length: 17
{"hello":"world"}
Devolver una respuesta personalizada cuando se activa la limitación de velocidad
enable_on_status:
- 429
status_code: 302
headers:
- Location=https://example.com
La limitación de velocidad suele devolver el código de estado HTTP 429. Con esta configuración, la puerta de enlace devuelve la siguiente respuesta personalizada:
HTTP/1.1 302 Found
Location: https://example.com
Esto redirige las solicitudes limitadas a otra página, como una página estática en una CDN.
Para devolver otros códigos de estado cuando se active la limitación de velocidad, configure los campos tal como se indica en la sección "Devolver una respuesta personalizada en escenarios de respuesta simulada".
Bloquear solicitudes para rutas o nombres de dominio específicos
Aplique las siguientes configuraciones del complemento a las rutas route-a y route-b:
body: "{\"hello\":\"world\"}"
Aplique la siguiente configuración del complemento a los nombres de dominio *.example.com y test.com:
enable_on_status:
- 429
status_code: 200
headers:
- Content-Type=application/json
body: "{\"errmsg\": \"rate limited\"}"
route-ayroute-bson las rutas especificadas al crear las rutas de la puerta de enlace. Si una solicitud coincide con una ruta, se aplican las reglas configuradas para esa ruta.*.example.comytest.comcoinciden con los nombres de dominio de las solicitudes. Si una solicitud coincide con un nombre de dominio, se aplican las reglas configuradas para ese nombre de dominio.Las reglas se aplican en orden secuencial. Una vez que una regla coincide, se omiten las siguientes.