Criando API com Clojure

Gilmar Soares
Training Center

--

Opa… Como prometi sigo criando meus artigos e dessa vez vou mostrar como criar uma API simples, utilizando uma biblioteca chamada Pedestal.

Primeiro vamos criar nosso projeto executando o seguinte comando:

Com isso teremos a estrutura inicial do projeto, da mesma forma que criamos no artigo passado.
Abaixo a estrutura:

Bom, aqui temos coisas diferentes se compararmos a estrutura do projeto com o artigo anterior. Temos os arquivos logback.xml, server.clj e service.clj.

O arquivo server.clj vai ser o responsável por subir sua aplicação utilizando um container web Java bem famoso chamado Jetty.

Outro arquivo, que é diferente do que vimos no artigo passado, é o service.clj. Nesse arquivo temos duas funções, uma chamada home-page e outra chamada about-page.

E por fim o logback.xml que é apenas o arquivo de configuração de logs da nossa aplicação.

Estas funções estão configuradas em uma definição de rotas que chamamos de routes e nelas definimos as rotas do projeto, que são apenas nossas configurações de URL.

Temos duas rotas configuradas no nosso projeto:

  • / será a homepage da API, e quem vai responder ao request desse endpoint é a função home-page
  • /about será um "sobre" referente a nossa API e quem vai responder ao request desse endpoint é a função about-page.

Bom, acho que é hora de executar nosso projeto e ver o comportamento da nossa API. Para isso vamos executar o comando:

Após executar esse comando, o leiningen vai fazer download de todas as dependências que estão configuradas no arquivo project.clj, executar o Jetty, que mencionei acima, e teremos nosso projeto rodando. Com isso podemos chamar nossos endpoints.

Veremos essa resposta do nosso server no terminal:

Tente acessar do seu browser favorito nos seguintes endpoints:

Adicionei um método a mais no projeto, pois nos exemplos não existia nada que retornasse um json que costumamos utilizar em nossas APIs.
Então adicionei a função:

Nas nossas configurações de rota adicionei:

Não podemos esquecer do common que adicionei para fazer parse json:

Vamos agora executar novamente nosso comando lein run e vamos usar nosso browser favorito para ver nosso json gerado por nosso endpoint:

http://localhost:8080/json -> resposta:

Bom, acredito que seja isso por hora. Todo o código esta disponível no Github.

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

Abraços!!!

--

--