/bossaBoxChallengeElixir

Desafio de backend da BossaBox em Elixir

Primary LanguageElixirMIT LicenseMIT

Desafio de API da BossaBox

Esse é um desafio de api da BossaBox para começar no site, é necessário criar um CRUD(Create, Read, Update, Delete) de ferramentas de desenvolvimento, que terão os atributos title, link, description e tags.

Requisitos

  • É necessário ter instalado o Elixir e PostgreSQL na máquina;
  • Após fazer o clone do projeto faça mix deps.get que irá instalar as dependências do projeto;
  • Rode o comando mix ecto.migrate que irá atualizar o banco de dados;
  • Por mix, o comando mix phx.server deve iniciar o projeto;

Tecnologias

Estrutura

O projeto é separado em: Router, Controllers, .

Router

Router vai ser o responsável por habilitar as rotas disponíveis na aplicação, além de configurar quais plugins eu vou usar.

  • Para essa aplicação, eu gerei um pipeline chamado api que vai aceitar requests no formato json
  • Em sequência eu gero um escopo /tools que define que as rotas aceitas serão as com "/tools", utilizando a função resources, eu defino que em /tools será aceito vários tipos de requisições, no caso, estou usando as rotas :create(POST), :index(GET), :show(GET /id), :delete(DELETE /id), :update([PUT /id, PATCH /id]), e direcionando para serem tratadas no ToolController

Controllers

Controller vai ser responsável por tratar cada requisição, que é encaminhada para uma função baseado em quais parametros foram enviados e qual tipo de requisição, para tratar essas requisições, cada uma dessas funções encaminhar para um serviço próprio

Ecto

Cada serviço próprio vai fazer uma ação no banco de dados, e é usado o Ecto para isso, o Ecto precisa de o que é chamado de Changeset que vai verificar se os dados preparados para inserir no banco de dados estão corretos

Diagrama da API

Clique aqui para acessar o diagrama da API

License

MIT