Criação de uma resposta de gateway
Uma resposta de gateway é exibida se o APIG falhar ao processar uma solicitação de API. O APIG fornece um conjunto de respostas padrão e também permite que você crie respostas com códigos de status e conteúdo personalizados. O conteúdo da resposta deve estar no formato JSON.
Por exemplo, o conteúdo de uma resposta de gateway padrão é o seguinte:
{"error_code": "$context.error.code", "error_msg": "$context.error.message", "request_id": "$context.requestId"}
Você pode adicionar uma resposta com o seguinte conteúdo:
{"errorcode": "$context.error.code", "errormsg": "$context.error.message", "requestid": "$context.requestId","apiId":"$context.apiId"}
Você pode adicionar mais campos ao corpo JSON ou excluir campos existentes do corpo JSON.
- Você pode criar um máximo de quatro respostas de gateway para cada grupo.
- Um máximo de 10 cabeçalhos de resposta podem ser personalizados. A chave de um cabeçalho de resposta pode conter de 1 a 128 caracteres, incluindo dígitos, letras e sublinhados (_). O valor pode fazer referência a variáveis de tempo de execução (consulte Variáveis de contexto), mas não pode conter colchetes duplos ([[ ou ]]).
- O tipo de uma resposta padrão ou personalizada não pode ser modificado, mas o código de status e o conteúdo da resposta podem.
- O tipo de resposta de gateway não pode ser alterado. Para mais detalhes, consulte Tipos de respostas.
- As respostas do gateway podem conter as variáveis de contexto do gateway de API (começando com $context). Para mais detalhes, consulte Variáveis de contexto.
Procedimento
- Vá para o console do APIG.
- Selecione um gateway dedicado na parte superior do painel de navegação.
- Escolha API Management > API Groups.
- Clique em um nome de grupo.
- Clique na guia Group Information.
- Na área Gateway Responses, crie ou modifique as respostas do gateway.
Para cancelar modificações em uma resposta padrão, clique em Restore Defaults no canto superior direito.
Tipos de respostas
A tabela a seguir lista os tipos de respostas suportados pelo APIG. Você pode definir códigos de status para atender aos seus requisitos de serviço.
Nome da resposta |
Código de status padrão |
Descrição |
---|---|---|
Access Denied |
403 |
Acesso negado. Por exemplo, a política de controle de acesso é acionada ou um ataque é detectado. |
Authorizer Configuration Error |
500 |
Ocorreu um erro de autorizador personalizado. Por exemplo, a comunicação falhou ou uma resposta de erro foi retornada. |
Authorizer Failed |
500 |
Falha na autorização personalizada. |
Incorrect Identity Source |
401 |
A origem de identidade do autorizador personalizado está ausente ou é inválida. |
Third-Party Configuration Error |
500 |
Ocorreu um erro de autorizador de terceiros. Por exemplo, a comunicação falhou ou uma resposta de erro foi retornada. |
Third-Party Authorizer Failure |
401 |
O autorizador de terceiros retorna uma falha de autenticação. |
Incorrect Third-Party Identity Source |
401 |
A fonte de identidade do autorizador de terceiros está ausente. |
Authentication Failure |
401 |
Falha na autenticação do IAM ou da aplicação. |
Identity Source Not Found |
401 |
Nenhuma fonte de identidade foi especificada. |
Backend Timeout |
504 |
A comunicação com o serviço de back-end atingiu o tempo limite. |
Backend Unavailable |
502 |
O serviço de back-end não está disponível devido a um erro de comunicação. |
Default 4XX |
- |
Outro erro 4XX ocorreu. |
Default 5XX |
- |
Outro erro 5XX ocorreu. |
No API Found |
404 |
Nenhuma API foi encontrada. |
Incorrect Request Parameters |
400 |
Os parâmetros de solicitação estão incorretos ou o método HTTP não é suportado. |
Request Throttled |
429 |
A solicitação foi rejeitada devido à limitação de solicitação. |
Unauthorized Credential |
401 |
A credencial que você está usando não foi autorizada a chamar a API. |
Variáveis de contexto
Variável |
Descrição |
---|---|
$context.apiId |
ID da API. |
$context.apiName |
Nome da API. |
$context.appId |
ID da credencial que chama a API. |
$context.appName |
Nome da credencial que chama a API. |
$context.requestId |
ID da solicitação gerado quando a API é chamada. |
$context.stage |
Ambiente de implementação no qual a API é chamada. |
$context.sourceIp |
Endereço IP de origem do chamador da API. |
$context.reqPath |
Caminho de solicitação de API, excluindo a cadeia de consulta. |
$context.reqUri |
Caminho de solicitação da API, incluindo a cadeia de consulta. |
$context.reqMethod |
Método de solicitação. |
$context.authorizer.frontend.property |
Valores dos pares atributo-valor especificados mapeados para o contexto na resposta do autorizador personalizada de front-end. |
$context.authorizer.backend.property |
Valores dos pares atributo-valor especificados mapeados para o contexto na resposta do autorizador personalizada de back-end. |
$context.error.message |
Mensagem de erro. |
$context.error.code |
Código de erro. |
$context.error.type |
Tipo de erro. |