Criando web-app com Clojure
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.
- Hello World;
- Criar nossas próprias funções;
- Utilizando funções existentes do Clojure;
- Criando nosso primeiro projeto Clojure;
- Criando API com Clojure;
- Criando WebAPP com Clojure;
- Ver como criamos funções e como podemos re-utilizar em nosso projetos;
- Criar projeto web;
- Utilizar Classes Java em funções Clojure;
- e muito mais…
Abraços!!