O plug-in custom-response retorna códigos de status HTTP, cabeçalhos e corpos de resposta personalizados. Use-o para crie respostas mock ou substituir respostas de códigos de status específicos, como retornar uma mensagem personalizada ao ativar uma política de limitação de taxa.
Tipo de plug-in
Plug-in relacionado ao protocolo de transmissão.
Campos
|
Campo |
Tipo de dados |
Obrigatório |
Valor padrão |
Descrição |
|
status_code |
número |
Não |
200 |
Código de status HTTP personalizado. |
|
headers |
array de strings |
Não |
- |
Cabeçalhos de resposta HTTP personalizados. Separe cada par chave-valor com |
|
body |
string |
Não |
- |
Corpo de resposta HTTP personalizado. |
|
enable_on_status |
array de números |
Não |
- |
O código de status HTTP que aciona a resposta personalizada. Se você deixar este campo vazio, a resposta personalizada se aplica a todas as requisições, independentemente do código de status original. |
Exemplos
Retornar uma resposta personalizada em cenários de resposta mock
status_code: 200
headers:
- Content-Type=application/json
- Hello=World
body: "{\"hello\":\"world\"}"
Esta configuração retorna a seguinte resposta:
HTTP/1.1 200 OK
Content-Type: application/json
Hello: World
Content-Length: 17
{"hello":"world"}
Retornar uma resposta personalizada quando a limitação de taxa for acionada
enable_on_status:
- 429
status_code: 302
headers:
- Location=https://example.com
A limitação de taxa geralmente retorna o código de status HTTP 429. Com esta configuração, o API Gateway retorna a seguinte resposta personalizada:
HTTP/1.1 302 Found
Location: https://example.com
Essa configuração redireciona as requisições limitadas para outra página, como uma página estática em uma CDN.
Para retornar outros códigos de status quando a limitação de taxa for acionada, configure os campos conforme descrito na seção "Retornar uma resposta personalizada em cenários de resposta mock".
Bloquear requisições para rotas ou nomes de domínio específicos
Aplique as seguintes configurações de plug-in às rotas route-a e route-b:
body: "{\"hello\":\"world\"}"
Aplique a seguinte configuração de plug-in aos nomes de domínio *.example.com e test.com:
enable_on_status:
- 429
status_code: 200
headers:
- Content-Type=application/json
body: "{\"errmsg\": \"rate limited\"}"
route-aeroute-bsão as rotas especificadas ao criar as rotas do API Gateway. Se uma requisição corresponder a uma rota, as regras configuradas para ela entrarão em vigor.*.example.cometest.comcorrespondem a nomes de domínio nas requisições. Se uma requisição corresponder a um nome de domínio, as regras configuradas para esse nome de domínio entrarão em vigor.O API Gateway aplica as regras em sequência. Após uma correspondência, ele ignora as regras subsequentes.