Acabo de empezar con NestJS y quería saber si es posible generar dinámicamente una respuesta como plantilla JSON o HBS según el valor de Accept del encabezado.
Tengo un backend creado con NestJS que sirve API REST puras, ahora también quiero renderizar plantillas HBS para los mismos métodos de controlador. Algo como lo siguiente, pero con un enfoque mejor y más limpio.
@Get() async getAll(@Headers() headers, @Res() res: Response): Promise<Pattern[]> { const products = await this.productsService.getAll(); if(headers.accept === "accept/json"){ return products; } return res.render( this.appService.getViewName(), { products }, ); }Siempre puedes hacerlo con el operador ternario:
const products = await this.productsService.getAll(); return headers.accept === "accept/json" ? products : res.render(this.appService.getViewName(), {products});