From defce46fdf85d16bbe3c0a8de6058334e8a53775 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= <essen@ninenines.eu>
Date: Tue, 16 Jan 2024 16:28:52 +0100
Subject: REST: Allow generate_etag to return undefined

This allows conditionally generating an etag.
---
 doc/src/manual/cowboy_rest.asciidoc | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'doc/src/manual/cowboy_rest.asciidoc')

diff --git a/doc/src/manual/cowboy_rest.asciidoc b/doc/src/manual/cowboy_rest.asciidoc
index 0bb6d47..ea6dba9 100644
--- a/doc/src/manual/cowboy_rest.asciidoc
+++ b/doc/src/manual/cowboy_rest.asciidoc
@@ -379,7 +379,7 @@ and that the request shouldn't be repeated.
 ----
 generate_etag(Req, State) -> {Result, Req, State}
 
-Result  :: binary() | {weak | strong, binary()}
+Result  :: binary() | {weak | strong, binary()} | undefined
 Default  - no etag value
 ----
 
@@ -389,6 +389,10 @@ When a binary is returned, the value is automatically
 parsed to a tuple. The binary must be in the same
 format as the etag header, including quotes.
 
+It is possible to conditionally generate an etag.
+When no etag can be generated, `undefined` should
+be returned.
+
 === is_authorized
 
 [source,erlang]
@@ -730,6 +734,9 @@ listed here, like the authorization header.
 
 == Changelog
 
+* *2.11*: The `generate_etag` callback can now return
+          `undefined` to conditionally avoid generating
+          an etag.
 * *2.9*: An `AcceptCallback` can now return `{created, URI}` or
          `{see_other, URI}`. The return value `{true, URI}`
          is deprecated.
-- 
cgit v1.2.3

