Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda> API Gateway> Guia de usuário> Gerenciamento de API> Criação de uma resposta de gateway
Atualizado em 2023-05-11 GMT+08:00

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 ou excluir campos existentes do corpo JSON.

  • Você pode criar um máximo de quatro respostas de gateway para cada grupo.
  • 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 da API (começando com $context). Para mais detalhes, consulte Variáveis de contexto.

Procedimento

  1. Faça logon no console do APIG.
  1. Selecione um gateway na parte superior do painel de navegação.
  1. Escolha API Management > API Groups.
  1. Clique em um nome de grupo.
  2. Clique na guia Group Information.
  3. 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 resposta suportados pelo APIG. Você pode definir códigos de status para atender aos seus requisitos de serviço.

Tabela 1 Tipos de resposta de erro suportados pelo APIG

Nome da resposta

Código de status padrão

Descrição

Acesso negado

403

Acesso negado. Por exemplo, a política de controle de acesso é acionada ou um ataque é detectado.

Erro de configuração do autorizador

500

Ocorreu um erro de autorizador personalizado. Por exemplo, a comunicação falhou ou uma resposta de erro foi retornada.

Autorizador falhou

500

Falha na autorização personalizada.

Fonte de identidade incorreta

401

A origem de identidade do autorizador personalizado está ausente ou é inválida.

Falha de autenticação

401

Falha na autenticação do IAM ou da aplicação.

Fonte de identidade não encontrada

401

Nenhuma fonte de identidade foi especificada.

Tempo limite de back-end

504

A comunicação com o serviço de back-end expirou.

Back-end indisponível

502

O serviço de back-end não está disponível devido a um erro de comunicação.

Padrão 4XX

-

Outro erro 4XX ocorreu.

Padrão 5XX

-

Outro erro 5XX ocorreu.

Nenhuma API encontrada

404

Nenhuma API foi encontrada.

Parâmetros de solicitação incorretos

400

Os parâmetros de solicitação estão incorretos ou o método HTTP não é suportado.

Solicitação limitada

429

A solicitação foi rejeitada devido à limitação de solicitação.

Credencial não autorizada

401

A credencial que você está usando não foi autorizada a chamar a API.

Variáveis de contexto

Tabela 2 Variáveis que podem ser usadas no corpo da mensagem de resposta

Variável

Descrição

$context.apiId

ID da API.

$context.appId

ID da credencial que chama a API.

$context.requestId

ID da solicitação gerada 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.authorizer.frontend.property

Valores dos pares de valor do atributo especificados mapeados para o contexto na resposta do autorizador personalizado do front-end

$context.authorizer.backend.property

Valores dos pares de valor do atributo especificados mapeados para o contexto na resposta do autorizador personalizado de back-end

$context.error.message

Mensagem de erro.

$context.error.code

Código de erro.

$context.error.type

Tipo de erro.