Handy for a ring REST server that is spec'd via the upcomming clojure.spec
library in Clojure 1.9, since it encourages the use of namespaced keywords.
A request like
POST /endpoint Content-Type: application/json {"name": "Test", "id": -1}
will be parsed as
{:my.spec/name "Test"
:my.spec/id -1}
while a response like
{:my.spec/name "Test"
:my.spec/id "5f711778-1fdd-455e-aa4c-ca015a9774a"
:my.spec/more "Values"}
will be sent over the wire like
{
"name": "Test",
"id": "5f711778-1fdd-455e-aa4c-ca015a9774a",
"more": "Values
}