To set or send a static header for a GET
request in Nestjs, we can use the @Header()
decorator function from the @nestjs/common
module before the Controller
class method that handles that GET
request.
TL;DR
// import `@Header()` decorator function from the `@nestjs/common` module
import { Controller, Get, Header } from "@nestjs/common";
// the @Controller() decorator function will instruct Nestjs
// to add a route of `/greet`
@Controller("greet")
export class GreetController {
// 1. the @Get() decorator function will instruct Nestjs
// that this is the default method that should be
// invoked when the user requests a `GET` to `/greet` endpoint
// 2. use the @Header() decorator function and
// pass the header name as the first argument
// and the header value as the second argument
@Get()
@Header("x-app-name", "MyApp")
sayHello() {
return `Hello World`;
}
}
For example, let's say we have an API endpoint called /greet
, and requesting it will give us a response of Hello World
.
It can be done like this,
import { Controller, Get } from "@nestjs/common";
// the @Controller() decorator function will instruct Nestjs
// to add a route of `/greet`
@Controller("greet")
export class GreetController {
// the @Get() decorator function will instruct Nestjs
// that this is the default method that should be
// invoked when the user requests a `GET` to `/greet` endpoint
@Get()
sayHello() {
return `Hello World`;
}
}
To know more about creating a GET
request in Nestjs, see the blog on How to make a simple GET request or an API endpoint in Nestjs?.
Now if we need to send a custom header called x-app-name
with the value of My App
, we can use the @Header()
decorator function and use just above the sayHello()
method.
The @Header()
decorator function accepts 2 arguments:
- the first argument should be the header name
- and the second argument should be the header value
In our case it will look like this,
// import `@Header()` decorator function from the `@nestjs/common` module
import { Controller, Get, Header } from "@nestjs/common";
// the @Controller() decorator function will instruct Nestjs
// to add a route of `/greet`
@Controller("greet")
export class GreetController {
// 1. the @Get() decorator function will instruct Nestjs
// that this is the default method that should be
// invoked when the user requests a `GET` to `/greet` endpoint
// 2. use the @Header() decorator function and
// pass the header name as the first argument
// and the header value as the second argument
@Get()
@Header("x-app-name", "MyApp")
sayHello() {
return `Hello World`;
}
}
Now if we send a GET
request to the /greet
API endpoint, we will get a response of Hello World
along with the header of x-app-name
having the value of MyApp
.
We have successfully set a static response header for a GET
request in Nestjs. Yay 🥳!
See the above code live in codesandbox.
To see the header in the response, go to this Hoppscotch link and make a request.
That's all 😃!