ring.util.response

Functions for generating and augmenting response maps.

bad-request

added in 1.7

(bad-request body)
Returns a 400 'bad request' response.

charset

added in 1.1

(charset resp charset)
Returns an updated Ring response with the supplied charset added to the
Content-Type header.

content-type

(content-type resp content-type)
Returns an updated Ring response with the a Content-Type header corresponding
to the given content-type.

created

added in 1.2

(created url)(created url body)
Returns a Ring response for a HTTP 201 created response.

file-response

(file-response filepath)(file-response filepath options)
Returns a Ring response to serve a static file, or nil if an appropriate
file does not exist.
Options:
  :root            - take the filepath relative to this root path
  :index-files?    - look for index.* files in directories (defaults to true)
  :allow-symlinks? - allow symlinks that lead to paths outside the root path
                     (defaults to false)

find-header

added in 1.4

(find-header resp header-name)
Looks up a header in a Ring response (or request) case insensitively,
returning the header map entry, or nil if not present.

get-charset

added in 1.6

(get-charset resp)
Gets the character encoding of a Ring response.

get-header

added in 1.2

(get-header resp header-name)
Looks up a header in a Ring response (or request) case insensitively,
returning the value of the header, or nil if not present.

header

(header resp name value)
Returns an updated Ring response with the specified header added.

not-found

added in 1.1

(not-found body)
Returns a 404 'not found' response.

redirect

(redirect url)(redirect url status)
Returns a Ring response for an HTTP 302 redirect. Status may be 
a key in redirect-status-codes or a numeric code. Defaults to 302

redirect-after-post

deprecated in 1.4

(redirect-after-post url)
Returns a Ring response for an HTTP 303 redirect. Deprecated in favor
of using redirect with a :see-other status.

redirect-status-codes

added in 1.4

Map a keyword to a redirect status code.

resource-data

multimethod

added in 1.4

(resource-data url)
Returns data about the resource specified by url, or nil if an
appropriate resource does not exist.

The return value is a map with optional values for:
:content        - the content of the URL, suitable for use as the :body
                  of a ring response
:content-length - the length of the :content, nil if not available
:last-modified  - the Date the :content was last modified, nil if not
                  available

This dispatches on the protocol of the URL as a keyword, and
implementations are provided for :file and :jar. If you are on a
platform where (Class/getResource) returns URLs with a different
protocol, you will need to provide an implementation for that
protocol.

This function is used internally by url-response.

resource-response

(resource-response path)(resource-response path options)
Returns a Ring response to serve a packaged resource, or nil if the
resource does not exist.
Options:
  :root            - take the resource relative to this root
  :loader          - resolve the resource in this class loader
  :allow-symlinks? - allow symlinks that lead to paths outside the root
                     classpath directories (defaults to false)

response

(response body)
Returns a skeletal Ring response with the given body, status of 200, and no
headers.

response?

added in 1.1

(response? resp)
True if the supplied value is a valid response map.

status

(status status)(status resp status)
Returns an updated Ring response with the given status.

update-header

added in 1.4

(update-header resp header-name f & args)
Looks up a header in a Ring response (or request) case insensitively,
then updates the header with the supplied function and arguments in the
manner of update-in.

url-response

added in 1.2

(url-response url)
Return a response for the supplied URL.