Skip to content
Written with Claude

REQUEST_HEADERS_MODE

Also known as

request_headers (with or without @ prefix)

Control how HTTP request headers are passed to the PostgreSQL function.

Syntax

code
@request_headers_mode <mode>
@request_headers <mode>

Values

ValueDescription
ignoreDon't pass request headers to the function
contextSet headers as PostgreSQL context variable via set_config()
parameterPass headers to a function parameter as JSON

Examples

Ignore Headers

sql
sql
comment on function simple_func() is
'HTTP GET
@request_headers_mode ignore';

Pass as Context Variable

sql
sql
comment on function context_aware_func() is
'HTTP GET
@request_headers_mode context';

Headers accessible via: current_setting('request.headers', true)

Pass as Parameter

sql
sql
create function with_headers(_data text, _headers json default null)
returns json
language sql
begin atomic;
...;
end;

comment on function with_headers(text, json) is
'HTTP POST
@request_headers_mode parameter';

Equivalent as a SQL file endpoint (sql/with-headers.sql):

sql
sql
/*
HTTP POST
@request_headers_mode parameter
@param $1 data
@param $2 headers json
*/
select json_build_object('data', $1, 'headers', $2);

Behavior

  • Default mode is configured in NpgsqlRest.RequestHeadersMode
  • context mode uses the key from RequestHeadersContextKey setting
  • parameter mode uses the parameter name from RequestHeadersParameterName setting

Comments