Conhecendo Phoenix: primeira API
Inicializando nosso projeto.
Primeiro, rodaremos o seguinte comando para gerarmos um novo projeto Phoenix sem HTML, visto que nosso projeto não deverá renderizar conteúdos estáticos.
Configurando nossa conexão ao banco de dados
Aqui, configuramos o username, password e hostname com os nomes padrões do Postgres. Voltando ao terminal, vamos rodar os seguintes comandos para criar nossa DB e iniciar o servidor.
Veremos o erro no route found for GET / (BusiApiWeb.Router)
, isso é porque ainda não temos nenhuma rota configurada. No nosso router.ex, vamos adicionar a seguinte parte de código, e depois criar o DefaultController
Ao recarregarmos a página, deveremos ver o texto "BusiApi!"
na tela.
Criando nossa primeira API JSON
Para criarmos nosso model da API JSON, rodaremos o seguinte comando:
Esse comando criará uma série de arquivos, incluindo um controller, as migrations e os arguivos de teste. Após rodarmos esse comando, o Phoenix pedirá para adicionarmos o resource na nossa lib/busi_api_web/router.ex e rodaremos o comando mix ecto.migrate
Antes de testarmos nossa API, vamos adicionar alguns valores iniciais. Abra priv/repo/seeds.exs e adicione os seguintes valores:
Agora rodamos o comando mix run priv/repo/seeds.exs para adicionarmos os valores à tabela. Restarte o server para vermos os registros JSON. Nós também podemos testar nossa API com o postman fazendo uma requisição do tipo POST
para a url: http://localhost:4000/api/businesses
Vamos começar com nosso BusinessController, nesse caso list_businesses() retorna todos os registros.
Na segunda parte, criaremos um sistema de autenticação com Guardian and Comeonin.