Package org.springframework.web.servlet.function

# Interface ServerResponse.HeadersBuilder<B extends ServerResponse.HeadersBuilder<B>>

Type Parameters:
  `B` - the builder subclass

All Known Subinterfaces:
  `ServerResponse.BodyBuilder`

Enclosing interface:
  ServerResponse

public static interface ServerResponse.HeadersBuilder<B extends ServerResponse.HeadersBuilder<B>>
Defines a builder that adds headers to the response.

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static interface`
`ServerResponse.HeadersBuilder.WriteFunction`
Defines the contract for `build(WriteFunction)`.

## Method Summary

Modifier and Type
Method
Description
`B`
`allow(Set<org.springframework.http.HttpMethod> allowedMethods)`
Set the set of allowed `HTTP methods`, as specified by the `Allow` header.
`B`
`allow(org.springframework.http.HttpMethod... allowedMethods)`
Set the set of allowed `HTTP methods`, as specified by the `Allow` header.
`ServerResponse`
`build()`
Build the response entity with no body.
`ServerResponse`
`build(ServerResponse.HeadersBuilder.WriteFunction writeFunction)`
Build the response entity with a custom write function.
`B`
`cacheControl(org.springframework.http.CacheControl cacheControl)`
Set the caching directives for the resource, as specified by the HTTP 1.1 `Cache-Control` header.
`B`
`cookie(Cookie cookie)`
Add the given cookie to the response.
`B`
`cookies(Consumer<org.springframework.util.MultiValueMap<String,Cookie>> cookiesConsumer)`
Manipulate this response's cookies with the given consumer.
`B`
`eTag(String eTag)`
Set the entity tag of the body, as specified by the `ETag` header.
`B`
`header(String headerName, String... headerValues)`
Add the given header value(s) under the given name.
`B`
`headers(Consumer<org.springframework.http.HttpHeaders> headersConsumer)`
Manipulate this response's headers with the given consumer.
`B`
`lastModified(Instant lastModified)`
Set the time the resource was last changed, as specified by the `Last-Modified` header.
`B`
`lastModified(ZonedDateTime lastModified)`
Set the time the resource was last changed, as specified by the `Last-Modified` header.
`B`
`location(URI location)`
Set the location of a resource, as specified by the `Location` header.
`B`
`varyBy(String... requestHeaders)`
Configure one or more request header names (for example, "Accept-Language") to add to the "Vary" response header to inform clients that the response is subject to content negotiation and variances based on the value of the given request headers.

## Method Details

### header

B header(String headerName, String... headerValues)
Add the given header value(s) under the given name.

Parameters:
  `headerName` - the header name
  `headerValues` - the header value(s)
Returns:
  this builder
See Also:
  - `HttpHeaders.add(String, String)`

### headers

B headers(Consumer<org.springframework.http.HttpHeaders> headersConsumer)
Manipulate this response's headers with the given consumer. The headers provided to the consumer are "live", so that the consumer can be used to overwrite existing header values, remove values, or use any of the other `HttpHeaders` methods.

Parameters:
  `headersConsumer` - a function that consumes the `HttpHeaders`
Returns:
  this builder

### cookie

B cookie(Cookie cookie)
Add the given cookie to the response.

Parameters:
  `cookie` - the cookie to add
Returns:
  this builder

### cookies

B cookies(Consumer<org.springframework.util.MultiValueMap<String,Cookie>> cookiesConsumer)
Manipulate this response's cookies with the given consumer. The cookies provided to the consumer are "live", so that the consumer can be used to overwrite existing cookies, remove cookies, or use any of the other `MultiValueMap` methods.

Parameters:
  `cookiesConsumer` - a function that consumes the cookies
Returns:
  this builder

### allow

B allow(org.springframework.http.HttpMethod... allowedMethods)
Set the set of allowed `HTTP methods`, as specified by the `Allow` header.

Parameters:
  `allowedMethods` - the allowed methods
Returns:
  this builder
See Also:
  - `HttpHeaders.setAllow(Set)`

### allow

B allow(Set<org.springframework.http.HttpMethod> allowedMethods)
Set the set of allowed `HTTP methods`, as specified by the `Allow` header.

Parameters:
  `allowedMethods` - the allowed methods
Returns:
  this builder
See Also:
  - `HttpHeaders.setAllow(Set)`

### eTag

B eTag(String eTag)
Set the entity tag of the body, as specified by the `ETag` header.

Parameters:
  `eTag` - the new entity tag
Returns:
  this builder
See Also:
  - `HttpHeaders.setETag(String)`

### lastModified

B lastModified(ZonedDateTime lastModified)
Set the time the resource was last changed, as specified by the `Last-Modified` header.

Parameters:
  `lastModified` - the last modified date
Returns:
  this builder
See Also:
  - `HttpHeaders.setLastModified(long)`

### lastModified

B lastModified(Instant lastModified)
Set the time the resource was last changed, as specified by the `Last-Modified` header.

Parameters:
  `lastModified` - the last modified date
Returns:
  this builder
See Also:
  - `HttpHeaders.setLastModified(long)`

### location

B location(URI location)
Set the location of a resource, as specified by the `Location` header.

Parameters:
  `location` - the location
Returns:
  this builder
See Also:
  - `HttpHeaders.setLocation(URI)`

### cacheControl

B cacheControl(org.springframework.http.CacheControl cacheControl)
Set the caching directives for the resource, as specified by the HTTP 1.1 `Cache-Control` header.

A `CacheControl` instance can be built like `CacheControl.maxAge(3600).cachePublic().noTransform()`.

Parameters:
  `cacheControl` - a builder for cache-related HTTP response headers
Returns:
  this builder
See Also:
  - RFC-7234 Section 5.2

### varyBy

B varyBy(String... requestHeaders)
Configure one or more request header names (for example, "Accept-Language") to add to the "Vary" response header to inform clients that the response is subject to content negotiation and variances based on the value of the given request headers. The configured request header names are added only if not already present in the response "Vary" header.

Parameters:
  `requestHeaders` - request header names
Returns:
  this builder

### build

ServerResponse build()
Build the response entity with no body.

### build

ServerResponse build(ServerResponse.HeadersBuilder.WriteFunction writeFunction)
Build the response entity with a custom write function.

Parameters:
  `writeFunction` - the function used to write to the `HttpServletResponse`