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.
Atualizado em 2023-05-11 GMT+08:00

Adição de uma resposta de gateway

Cenário

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 criar respostas de gateway com códigos de status e conteúdo personalizados na página API Groups. 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.

  • As respostas de gateway padrão fornecidas pelo APIG podem ser editadas.
  • Você pode criar respostas de gateway e configurar respostas diferentes para APIs no mesmo grupo de APIs.
  • 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 do APIG.

Pré-requisitos

Você criou um grupo de APIs.

Procedimento

  1. Acesse o console de gerenciamento.
  2. Clique em no canto superior esquerdo e selecione uma região.
  3. Clique em no canto superior esquerdo e escolha API Gateway.
  4. Escolha um tipo de gateway no painel de navegação.

    • Shared Gateway: você pode criar e gerenciar APIs imediatamente. Você será cobrado com base no número de chamadas de API.
    • Dedicated Gateways: você pode criar e gerenciar APIs depois de comprar um gateway. Você será cobrado com base na duração de uso do gateway.

  5. No painel de navegação, escolha API Publishing > API Groups.
  6. Localize o grupo de APIs para o qual você deseja criar ou modificar uma resposta de gateway e clique no nome do grupo para ir para a página de detalhes do grupo de APIs.
  7. Clique na guia Gateway Responses e crie uma resposta de gateway.

    • Para editar uma resposta, clique no botão Edit no canto superior direito e modifique o código de status e o conteúdo da resposta.
    • Você pode modificar apenas o código de status e o conteúdo de uma resposta de gateway padrão ou personalizada e não pode alterar o tipo de resposta.
    • Informações de erro e outros detalhes de resposta podem ser obtidos usando variáveis. Para obter detalhes sobre as variáveis suportadas, consulte Tabela 2.

Tipos de respostas

Tabela 1 lista os tipos de resposta suportados pelo APIG. Você pode definir códigos de status de respostas 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.

Aplicação não autorizada

401

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

Variáveis de contexto do APIG

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 aplicação 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.