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 2024-10-14 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 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

  1. Vá para o console do APIG.
  1. Selecione um gateway dedicado 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 respostas 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

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

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

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.