gun:patch - Apply a set of changes to a resource


patch(ConnPid, Path, Headers)
    -> StreamRef

patch(ConnPid, Path, Headers, Body)
    -> patch(ConnPid, Path, Headers, Body, #{})

patch(ConnPid, Path, Headers, Body, ReqOpts)
    -> StreamRef

ConnPid   :: pid()
Path      :: iodata()
Headers   :: [{binary(), iodata()}]
Body      :: iodata()
ReqOpts   :: gun:req_opts()
StreamRef :: reference()

Apply a set of changes to a resource.

The behavior of this function varies depending on whether a body is provided.

The function patch/3 expects either a content-length or content-type header to indicate that a body will be sent afterwards. The body can then be sent using gun:data(3).

The function patch/4,5 sends the entire request, including the request body, immediately. It is therefore not possible to use gun:data(3) after that. You should provide a content-type header. Gun will set the content-length header automatically.

The body sent in this request should be a patch document with instructions on how to update the resource.



The pid of the Gun connection process.


Path to the resource.


Additional request headers.


Request body.


Request options.

Return value

A reference that identifies the newly created stream is returned. It is this reference that must be passed in subsequent calls and will be received in messages related to this new stream.


  • 1.0: Function introduced.


Patch a resource
StreamRef = gun:patch(ConnPid, "/users/1",
    [{<<"content-type">>, <<"application/json-patch+json">>}],
Patch a resource in multiple calls
StreamRef = gun:patch(ConnPid, "/users/1", [
    {<<"content-type">>, <<"application/json-patch+json">>}
gun:data(ConnPid, StreamRef, fin,
Patch a resource with request options
StreamRef = gun:patch(ConnPid, "/users/1",
    [{<<"content-type">>, <<"application/json-patch+json">>}],
    #{reply_to => ReplyToPid}).

See also

gun(3), gun:post(3), gun:put(3), gun:await(3), gun:await_body(3), gun_push(3), gun_inform(3), gun_response(3), gun_data(3)

Gun 1.3 Function Reference


Version select

Like my work? Donate!

Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and is fantastic:

Recurring payment options are also available via GitHub Sponsors. These funds are used to cover the recurring expenses like food, dedicated servers or domain names.