W3cubDocs

/Phoenix

Plug.Conn.Adapter behaviour

Specification of the connection adapter API implemented by webservers

Summary

Callbacks

chunk(payload, arg1)

Sends a chunk in the chunked response

read_req_body(payload, options)

Reads the request body

send_chunked(payload, arg1, arg2)

Sends the given status, headers as the beginning of a chunked response to the client

send_file(payload, arg1, arg2, file, offset, length)

Sends the given status, headers and file as a response back to the client

send_resp(payload, arg1, arg2, arg3)

Sends the given status, headers and body as a response back to the client

Callbacks

chunk(payload, arg1)

chunk(payload, Plug.Conn.status) ::
  :ok |
  {:ok, sent_body :: binary, payload} |
  {:error, term}

Sends a chunk in the chunked response.

If the request has method "HEAD", the adapter should not send the response to the client.

Webservers are advised to return :ok and not modify any further state for each chunk. However, the test implementation returns the actual body and payload so it can be used during testing.

read_req_body(payload, options)

read_req_body(payload, options :: Keyword.t) ::
  {:ok, data :: binary, payload} |
  {:more, data :: binary, payload} |
  {:error, term}

Reads the request body.

Read the docs in Plug.Conn.read_body/2 for the supported options and expected behaviour.

send_chunked(payload, arg1, arg2)

send_chunked(payload, Plug.Conn.status, Plug.Conn.headers) :: {:ok, sent_body :: binary | nil, payload}

Sends the given status, headers as the beginning of a chunked response to the client.

Webservers are advised to return nil as the sent_body, as the body can no longer be manipulated. However, the test implementation returns the actual body so it can be used during testing.

send_file(payload, arg1, arg2, file, offset, length)

send_file(payload, Plug.Conn.status, Plug.Conn.headers, file :: binary, offset :: integer, length :: integer | :all) :: {:ok, sent_body :: binary | nil, payload}

Sends the given status, headers and file as a response back to the client.

If the request has method "HEAD", the adapter should not send the response to the client.

Webservers are advised to return nil as the sent_body, as the body can no longer be manipulated. However, the test implementation returns the actual body so it can be used during testing.

send_resp(payload, arg1, arg2, arg3)

send_resp(payload, Plug.Conn.status, Plug.Conn.headers, Plug.Conn.body) :: {:ok, sent_body :: binary | nil, payload}

Sends the given status, headers and body as a response back to the client.

If the request has method "HEAD", the adapter should not send the response to the client.

Webservers are advised to return nil as the sent_body, as the body can no longer be manipulated. However, the test implementation returns the actual body so it can be used during testing.

© 2013 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/plug/Plug.Conn.Adapter.html