DEV Community

Cover image for How to set or send a static response header for a POST 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 POST request in Nestjs?

Originally posted here!

To set or send a static header for a POST request in Nestjs, we can use the @Header() decorator function from the @nestjs/common module before the Controller class method that handles that POST request.

TL;DR

// import `@Header()` decorator function from the `@nestjs/common` module
import { Controller, Post, Header } from "@nestjs/common";

// the @Controller() decorator function will instruct Nestjs
// to add a route of `/greet`
@Controller("greet")
export class GreetController {
  // 1. the @Post() decorator function will instruct Nestjs
  // that this is the default method that should be
  // invoked when the user requests a `POST` 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
  @Post()
  @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, Post } from "@nestjs/common";

// the @Controller() decorator function will instruct Nestjs
// to add a route of `/greet`
@Controller("greet")
export class GreetController {
  // the @Post() decorator function will instruct Nestjs
  // that this is the default method that should be
  // invoked when the user requests a `POST` to `/greet` endpoint
  @Post()
  sayHello() {
    return `Hello World`;
  }
}
Enter fullscreen mode Exit fullscreen mode

To know more about creating a POST request in Nestjs, see the blog on How to make a simple POST 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, Post, Header } from "@nestjs/common";

// the @Controller() decorator function will instruct Nestjs
// to add a route of `/greet`
@Controller("greet")
export class GreetController {
  // 1. the @Post() decorator function will instruct Nestjs
  // that this is the default method that should be
  // invoked when the user requests a `POST` 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
  @Post()
  @Header("x-app-name", "MyApp")
  sayHello() {
    return `Hello World`;
  }
}
Enter fullscreen mode Exit fullscreen mode

Now if we send a POST 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 POST 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

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

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