Skip to content

boscocp/challenge_bhub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafio Bhub

Olá, Desafio BHUB. Este projeto consiste em aplicar conhecimentos de back-end ao criar uma API CRUD simples. Escoli como linguagem Python, e o framework Django. Usei como base boas práticas PEP-8 na medida do possível e para aprimorar meus conhecimentos do framework usei o livro Two Scoops of Django 3.x (2020 - Daniel Audrey Feldroy ).

Principais tecnologias usadas:

  • MongoDB
  • Docker
  • Docker-compose
  • Django
  • Swagger
  • Postman
  • Pytest

O projeto foi ajustado para rodar com uma versão local do mongoDB em um container. O Docker-compose realiza as etapas de subir o banco e fazer as migrações do banco caso necessário.

Como rodar o projeto: Precisa ter o docker instalado para poder rodar com docker-compose. Na pasta raiz do programa execute o seguinte comando:

docker-compose build
docker-compose up -d

para verificar se o projeto está online:

docker-compose ps

Primeiramente recomendo verificar se o banco foi criado na interface mongo-express pelo link http://localhost:8081/ : mongo-express

Caso por algum motivo o banco não tenha sido criado, crie digitando bhub_project e clicando em create database na interface.

Para rodar os testes unitários neste projeto é necessário o banco de dados estar online para poder a biblioteca de mocking utilizada mocar com as respectivas configurações. O comando para executar os testes unitários:

python manage.py test --settings=config.settings.test

OBS.: O projeto usa um settings de teste para rodar os testes, e para rodar local usa o settings.local.

Para acessar a documentação da API usando a biblioteca padrão do Django: http://localhost:1024/clientes/api_doc/

Para acessar a documentação da API usando a biblioteca padrão do Swagger: http://localhost:1024/clientes/swagger-ui/

Payload exemplo para método POST criar cliente: url: http://localhost:1024/clientes/

{
   "cliente": {
               "razao_social": "CPF",
               "telefone": "222222",
               "endereco": "Rua Api2",
               "faturamento_declarado": "1110.10"
           }
}

GET clientes: URL: http://localhost:1024/clientes/ ou com id URL: http://localhost:1024/clientes//

PUT atualizar clientes: url: http://localhost:1024/clientes// Payload:

{
   "cliente": {
               "razao_social": "CPF",
               "telefone": "2312312312",
               "endereco": "Rua Api22,
               "faturamento_declarado": "1555.10"
           }
}

DELETE deletar cliente: URL: http://localhost:1024/clientes//

POST cadastrar dados bancários: URL: http://localhost:1024/clientes//dadosbancarios/ payload:

{
   "dadosbancarios": {
               "agencia": 3,
               "conta": 34,
               "banco": "Banco12"
           }
}

GET dados bancários: URL: http://localhost:1024/clientes//dadosbancarios/ ou por uuid: URL: http://localhost:1024/clientes//dadosbancarios//

Atualizar PUT: URL: http://localhost:1024/clientes//dadosbancarios// payload:

{
   "dadosbancarios": {
               "agencia": 33,
               "conta": 344,
               "banco": "Banco13"
           }
}

DELETE deletar conta bancaria de um cliente: URL: http://localhost:1024/clientes//dadosbancarios//

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published