Configurar uma resposta de gateway para uma API REST usando o console do API Gateway - Amazon API Gateway

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar uma resposta de gateway para uma API REST usando o console do API Gateway

Para personalizar uma resposta de gateway usando o console do API Gateway
  1. Inicie uma sessão no console do API Gateway em https://console.aws.amazon.com/apigateway.

  2. Escolha uma API REST.

  3. No painel de navegação principal, selecione Respostas do gateway.

  4. Escolha um tipo de resposta e selecione Editar. Nesta demonstração, usamos Token de autenticação ausente como exemplo.

  5. Você pode alterar o Código de status gerado pelo API Gateway para retornar um código de status diferente que atenda aos requisitos da API. Neste exemplo, a personalização altera o código de status de padrão (403) para 404 porque esta mensagem de erro ocorre quando um cliente chama um recurso inválido ou incompatível que pode ser considerado como não encontrado.

  6. Para retornar os cabeçalhos personalizados, selecione Adicionar cabeçalho de resposta em Cabeçalhos de resposta. Para fins de ilustração, adicionamos os seguintes cabeçalhos personalizados:

    Access-Control-Allow-Origin:'a.b.c' x-request-id:method.request.header.x-amzn-RequestId x-request-path:method.request.path.petId x-request-query:method.request.querystring.q

    Nos mapeamentos de cabeçalho anteriores, um nome de domínio estático ('a.b.c') é mapeado para o cabeçalho Allow-Control-Allow-Origin, para permitir acesso do CORS à API, o cabeçalho da solicitação de entrada de x-amzn-RequestId é mapeado para request-id na resposta, a variável de caminho petId da solicitação de entrada é mapeada para o cabeçalho request-path na resposta e o parâmetro de consulta q da solicitação original é mapeado para o cabeçalho request-query da resposta.

  7. Em Modelos de resposta, mantenha application/json para Tipo de conteúdo e insira o seguinte modelo de mapeamento de corpo no editor do Corpo do modelo:

    { "message":"$context.error.messageString", "type": "$context.error.responseType", "statusCode": "'404'", "stage": "$context.stage", "resourcePath": "$context.resourcePath", "stageVariables.a": "$stageVariables.a" }

    Este exemplo mostra como mapear as propriedades $context e $stageVariables para propriedades do corpo de resposta de gateway.

  8. Escolha Save changes (Salvar alterações).

  9. Implantar a API em um estágio novo ou existente.

Teste a resposta do gateway chamando o seguinte comando CURL, pressupondo que o URL de invocação do método da API correspondente seja https://o81lxisefl.execute-api.us-east-1.amazonaws.com/custErr/pets/{petId}:

curl -v -H 'x-amzn-RequestId:123344566' https://o81lxisefl.execute-api.us-east-1.amazonaws.com/custErr/pets/5/type?q=1

Como o parâmetro de string de consulta extra q=1 não é compatível com a API, um erro é retornado para acionar a resposta do gateway especificado. Você receberá uma resposta do gateway semelhante à seguinte:

> GET /custErr/pets/5?q=1 HTTP/1.1 Host: o81lxisefl.execute-api.us-east-1.amazonaws.com User-Agent: curl/7.51.0 Accept: */* HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 334 Connection: keep-alive Date: Tue, 02 May 2017 03:15:47 GMT x-amzn-RequestId: 123344566 Access-Control-Allow-Origin: a.b.c x-amzn-ErrorType: MissingAuthenticationTokenException header-1: static x-request-query: 1 x-request-path: 5 X-Cache: Error from cloudfront Via: 1.1 441811a054e8d055b893175754efd0c3.cloudfront.net (CloudFront) X-Amz-Cf-Id: nNDR-fX4csbRoAgtQJ16u0rTDz9FZWT-Mk93KgoxnfzDlTUh3flmzA== { "message":"Missing Authentication Token", "type": MISSING_AUTHENTICATION_TOKEN, "statusCode": '404', "stage": custErr, "resourcePath": /pets/{petId}, "stageVariables.a": a }

O exemplo anterior pressupõe que o backend da API seja Pet Store e que a API possua uma variável de estágio, a, definida.