DEV Community

Cover image for How to set or send a static response header for a GET request in Nestjs?
MELVIN GEORGE
MELVIN GEORGE

Posted on • Originally published at melvingeorge.me

1 1

How to set or send a static response header for a GET request in Nestjs?

Originally posted here!

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`;
  }
}
Enter fullscreen mode Exit fullscreen mode

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`;
  }
}
Enter fullscreen mode Exit fullscreen mode

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`;
  }
}
Enter fullscreen mode Exit fullscreen mode

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 😃!

Feel free to share if you found this helpful 😃.


Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more