Creating-responses
You can create Ring response maps manually (see [[Concepts]]), but the ring.util.response namespace contains a number of useful functions to make this task easier.
The response
function creates a basic "200 OK" response:
(response "Hello World")
=> {:status 200
:headers {}
:body "Hello World"}
You can then use functions like content-type
to alter the base response to add in additional headers and other components:
(content-type (response "Hello World") "text/plain")
=> {:status 200
:headers {"Content-Type" "text/plain"}
:body "Hello World"}
Special functions also exist to create redirects:
(redirect "http://example.com")
=> {:status 302
:headers {"Location" "http://example.com"}
:body ""}
And to return static files or resources:
(file-response "readme.html" {:root "public"})
=> {:status 200
:headers {}
:body (io/file "public/readme.html")}
(resource-response "readme.html" {:root "public"})
=> {:status 200
:headers {}
:body (io/input-stream (io/resource "public/readme.html"))}
More information on these functions and others can be found in the ring.util.response API documentation.