8
respostas

Chamada via API Gaetway e teste local não reconhecem pacienteId

Oi pessoal,

Na parte em que criamos o endpoint para obter um paciente por id tive problemas. Inicialmente, utilizei a seguinte linha para pegar o valor do path:

const { pacienteId } = event.pathParameters;

porém, tive o seguinte erro:

"Cannot destructure property 'pacienteId' of 'event.pathParameters' as it is undefined."

Também tentei event.pathParameters.pacienteId e não funcionou.

Ao tentar o seguinte bloco:

const { pacienteId } = event;

Tive sucesso testando a lambda diretamente na aws, porém no teste local com o serverless framework e também chamando pelo endpoint gerado no api gateway não funcionou. Como se pacienteId não fosse definido, é undefined.

Preciso configurar algo no api gateway para ele reconhecer a variável path?

Se necessário, esse é meu código: https://github.com/antonialucianapires/lambda-cadastro-pacientes-serverless-framework

Após integração com dynamoDB testei as mesmas formas novamente:

const { pacienteId } = event.pathParameters assim funciona local, funciona através do gateway mas ao testar na lambda pelo console não funciona. Por que?

Cannot destructure property 'pacienteId' of 'event.pathParameters' as it is undefined.
8 respostas

Esse erro é quando a lambda n reconhece a variable declarada no serverless. Aparentemente está tudo certo. Vou baixar seu código pra testar aqui e já te retorno.

Testei aqui sem um db apenas com lambda e serverless local, funcionou direitinho, poderia tirar uma print de como você está chamando a api?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pelo o código que está em meu github funciona local, bem como funciona ao realizar a requisição via api gateway. Mas na tela do serviço lambda na aws, aparece esse erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Queria entender o porquê. Será que é a forma que montei o teste pelo console?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Verifique se seu api gateway está assim Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pedro, por onde você acessou essa tela de configuração?

Antonia vá no apigateway, seleciona o seu gateway, vá em recursos, seleciona o método de requisição e o path, no caso o seu seria um get, Insira aqui a descrição dessa imagem para ajudar na acessibilidade . E por fim vá em Solicitação de integração Insira aqui a descrição dessa imagem para ajudar na acessibilidade . Verifique se está conforme a imagem que enviei anteriormente

está sim:Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software