Por Design, em nossas APIs RESTful, usamos HEAD para verificar a existência de uma entidade. Recentemente, me deparei com um problema ao usar NestJS e usar o Tipo de Solicitação Http de HEAD e GET com a Mesma Rota. Por algum motivo, quando o cliente faz uma solicitação HEAD http para a API, digamos HEAD - /api/test, ela rotearia para o controlador da porção GET do código. Após alguma solução de problemas, parece estar relacionado à posição do método no controlador. Se você colocar a porção HEAD do código do controlador após o GET, a solicitação interceptará a solicitação GET. Se você colocá-la depois, funcionará conforme o esperado. Não sei por que, mas é bom saber
Trecho de código:
// HEAD must be before GET for NestJS controller with the same route
@Head(':id') // check for the existence of an entity
async hasOne(@Res() response, @Param('id') id): Promise<any> {
// do something
}
@Get(':id') // Get a single entity
getOne(@Param('id') id): Promise<any> {
// do something
}
Estamos usando o NestJS 10.4.4