Sirviendo requests con clojure

Una request HTTP es muy parecido a hacer una llamada a una función: Tiene una entrada (request) y devuelve un resultado (response).

Podríamos imaginar la request como un map con los headers, la uri, etc, y la response como otro map con sus headers, status code, body, etc:

Could not embed GitHub Gist f896c7104d0723ca6791: Not Found

Ahora, supongamos que queremos agregar información para que esté disponible en nuestro handler, y/o en la respuesta. Podríamos crear una función que “wrappee” nuestro handler, modificando lo que este recibe y devuelve:

Could not embed GitHub Gist 2b611b519468e4adf7c7: Not Found

Con esto ya podemos simplemente pedirle a ring que sirva nuestro ejemplo:

El “proyecto completo” está disponible en github: https://github.com/grilix/ring-example

Leer más: