Como resolvo erros de “Expressão de mapeamento inválida especificada” do API Gateway?

2 minuto de leitura
0

Eu usei um modelo do AWS CloudFormation, ou definição de OpenAPI, para criar uma API do Amazon API Gateway com um recurso de proxy. Quando tento adicionar parâmetros de caminho de URL à API, recebo uma mensagem de erro “Expressão de mapeamento inválida especificada”. Como resolvo o erro?

Breve descrição

O API Gateway retorna um erro de Expressão de mapeamento inválida especificada quando o parâmetro do caminho do proxy {proxy+} não tem um mapeamento de parâmetro de caminho de URL definido.

Para resolver esse erro, faça o seguinte:

Resolução

Para modelos do CloudFormation

1.    Atualize o modelo do CloudFormation para que o valor RequestParameters seja definido como verdadeiro.

Exemplo de RequestParameters do modelo do CloudFormation

...
.
.
  ProxyMethod:
    Type: 'AWS::ApiGateway::Method'
    Properties:
      .
      .
      RequestParameters:

        method.request.path.proxy: true

      Integration:
        RequestParameters:
          integration.request.path.proxy: 'method.request.path.proxy'

        IntegrationHttpMethod: ANY
        .
        .
...

2.    Atualize sua API usando o modelo do CloudFormation para atualizar a pilha do AWS CloudFormation.

Observação: para obter mais informações sobre como atualizar os recursos do API Gateway, consulte a referência do tipo de recurso do Amazon API Gateway.

Para definições de OpenAPI

1.    Atualize sua definição de API para que parâmetros na seção x-amazon-apigateway-any-method tenham os seguintes valores:

      "x-amazon-apigateway-any-method": {
                "parameters": [
          {
            "name": "proxy",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ]

....

....

}

2.    Atualize sua API importando seu arquivo de definição de API atualizado para o API Gateway.

Observação: Para obter mais informações, consulte Descrição de parâmetros no site da OpenAPI.

Testar a configuração

1.    No console do API Gateway, escolha o nome da sua API.

2.    Adicione parâmetros de caminho de URL conforme necessário para seu caso de uso. Se seu parâmetro de caminho de proxy incluir um mapeamento de parâmetros de caminho de URL definido corretamente, nenhum erro será exibido.


Informações relacionadas

Objeto x-amazon-apigateway-integration.requestParameters

Configurar uma integração de proxy com um recurso de proxy

Configurar transformações de dados para APIs REST