Criando web-app com Clojure

Gilmar Soares
Training Center
3 min readAug 13, 2017

--

Seguindo aprendendo e compartilhando Clojure, decidi mostrar como criamos web-app renderizando templates HTML.

Pesquisando um Framework para criar essa aplicação, o mais simples que encontrei, acredito eu, foi o luminus.

Então vamos seguir utilizando o comando lein para criar nossas aplicações, mas dessa vez passando outros parâmetros.

Agora temos o projeto criado e podemos executar o comando lein run para iniciar nossa aplicação e ver o que vem de exemplo.

Esse é o resultado esperado depois do lein run:

A aplicação irá responder na porta 3000, vamos acessar http://localhost:3000 e ver o que temos de exemplo da nossa aplicação.

Se tudo deu certo (e eu não estiver enganando vocês), o resultado será:

Agora vamos descobrir o porquê desse resultado navegando pelo código, e depois vamos criar uma outra página, assim consigo explicar como criar aproveitando o template default.

Vamos olhar o arquivo home.clj ele vai ter a configuração de rota do nosso "projeto".

Por hora o que interessa para nós é a função home-routes. Nela temos as declarações HTTP contendo duas rotas do nosso projeto, que são:

  • /
  • /about

Bom, a rota que aponta para / chama a função home-page como podemos ver na linha 15 do arquivo home.clj.

Olhando a função home-page temos a chamada de uma outra função que é do framework layout/render (você pode encontrar a declaração no arquivo layout.clj).

Voltando a funcão home-page, que renderiza o arquivo home.html, passa por parâmetro uma variável chamada docs contendo o conteúdo do arquivo docs.md.

Agora vamos criar uma outra página para mostrar como utilizar o layout default e também configurar rotas.

A página a ser criada é hello.html que vai ficar dentro do diretório templates. Vamos adicionar a função abaixo no nosso arquivo home.clj:

Esse é o arquivo html que coloquei dentro de templates:

Depois vamos adicionar nossa rota:

Apenas para facilitar a vida vou mostrar como ficou o arquivo home.clj:

Antes de executar nosso projeto, quero adicionar nossa nova página no menu do mesmo, então vamos alterar o arquivo base.html, que se encontra dentro do diretório templates, e vamos adicionar nosso novo link.

Não vou colocar todo o arquivo html aqui para não deixar muito extenso o artigo.

Por fim vamos executar nosso projeto novamente usando o comando lein run.

Se tudo deu certo, teremos o seguinte:

Podemos agora clicar no link hello e vamos ver a página:

Acredito que seja isso por hoje, todo o código desse projeto vai ficar no Github e qualquer duvida podem entrar em contato :).

Abaixo os outros artigos e os que estão por vir.

Abraços!!

--

--