Add explicit headers-only POST request using Prefer header and default the request to minimal

This commit is contained in:
laurenceisla
2021-07-23 17:15:30 -05:00
committed by GitHub
parent 41325fd9ba
commit 77faf9e9bc
2 changed files with 9 additions and 2 deletions
+1 -1
View File
@@ -889,7 +889,7 @@ To create a row in a database table post a JSON object whose keys are the names
{ "col1": "value1", "col2": "value2" }
If the table has a primary key, the response will include a :code:`Location` header describing where to find the new object. If the table is write-only then constructing the Location header will cause a permissions error. To successfully insert an item to a write-only table you will need to suppress the Location response header by including the request header :code:`Prefer: return=minimal`.
If the table has a primary key, the response can contain a :code:`Location` header describing where to find the new object by including the header :code:`Prefer: return=headers-only` in the request. Make sure that the table is not write-only, otherwise constructing the :code:`Location` header will cause a permissions error.
On the other end of the spectrum you can get the full created object back in the response to your request by including the header :code:`Prefer: return=representation`. That way you won't have to make another HTTP call to discover properties that may have been filled in on the server side. You can also apply the standard :ref:`v_filter` to these results.
+8 -1
View File
@@ -16,6 +16,9 @@ Added
* Allow :ref:`s_procs_variadic`.
|br| -- `@wolfgangwalther <https://github.com/wolfgangwalther>`_
* Allow sending the header ``Prefer: headers-only`` to get a response with a ``Location`` header. See :ref:`insert_update`.
|br| -- `@laurenceisla <https://github.com/laurenceisla>`_
* Allow :ref:`connection_poolers` such as PgBouncer in transaction pooling mode.
|br| -- `@laurenceisla <https://github.com/laurenceisla>`_
@@ -55,4 +58,8 @@ Changed
|br| -- `@laurenceisla <https://github.com/laurenceisla>`_
* Modified the default logging level from ``info`` to ``error``. See :ref:`log-level`.
|br| -- `@steve-chavez <https://github.com/steve-chavez>`_
|br| -- `@steve-chavez <https://github.com/steve-chavez>`_
* POST requests for insertions no longer include a ``Location`` header in the response by default and behave the same way as having a
``Prefer: return=minimal`` header in the request. This prevents permissions errors when having a write-only table. See :ref:`insert_update`.
|br| -- `@laurenceisla <https://github.com/laurenceisla>`_