Projeto desenvolvido para fixar os conhecimentos de desenvolvimento de backend com python usando FAST API
- Signo
- Tipo sanguineo
- Instituicoes
- Competencias
- Perfis
- Competencia
- Competencia Perfil
- Experiencia
- Formação
Caso ainda não possua o Python instalado na sua maquina, Clique AQUI para baixar e instalar a ultima versão.
O primeiro passo para rodar localmente o projeto é instalar as dependencias, para isso, rode:
Depois de instalado, você precisa definir as variaveis de acesso ao banco de dados em "api > app > sql_app > database.py"
Lembrando, se você for rodar em docker, vai precisar conectar seu mysql ao docker, que irá gerar um host especifico para ser usado nas configurações do "DOCKFILE" do caminho acima, AQUI tem um tutorial de como você pode fazer isso, caso tenha duvidas.
pip install requirements.txt
Agora que o ambiente está com tudo instalado, vá para "{raiz do projeto}/api/" e rode:
python -m uvicorn app.main:app --reload
pronto! Já pode começar a fazer os requests.
Com o terminal na raiz do projeto, execute para gerar a build do nosso docker:
docker build -t cbmse .
após a build completa, é hora de iniciar o docker que acabamos de criar, rode:
docker run -d --name cbmse_container -p 8000:8000 cbmse
Exemplo: http://127.0.0.1:8000/docs
2- Para facilitar o uso, existe um arquivo "" que pode ser importado no "Postman", nele contem todos os requests organizados e documentados.
3- Em atributos do tipo "datetime", você pode enviar valores em datetime como "2000-06-23T00:00:01.001Z" ou datas no formato "yyyymmdd" como "20200101"
GET /perfis
GET /perfis/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
int |
Obrigatório. O ID do perfil que deseja buscar |
POST /perfis
Body (JSON):
{
"tipos_sanguineo_id": 1,
"signo_id": 1,
"cpf": "12345678909",
"nome": "fulaninho junior",
"data_nascimento": "2000-06-23T00:00:01.001Z",
"email": "[email protected]",
"telefone": "7998232337",
"resumo": "olá, meu nome é fulaninho"
}
Parâmetro | Tipo | Descrição |
---|---|---|
tipos_sanguineo_id |
int |
Obrigatório. O ID do tipo sanguineo (na tabela de tipo sanguineo) |
signo_id |
int |
Obrigatório. O ID do signo (na tabela de signos) |
cpf |
String |
Obrigatório. CPF para o perfil |
nome |
String |
Obrigatório. Nome para o perfil |
data_nascimento |
datetime |
Obrigatório. Data de nascimento usuario |
email |
String |
Obrigatório. Email para o perfil |
telefone |
String |
Obrigatório. Telefone para o perfil |
resumo |
String |
Obrigatório. Um breve resumo para o perfil |
PUT /perfis/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
int |
Obrigatório. O ID do perfil que deseja Atualizar |
Body (JSON):
{
"tipos_sanguineo_id": 1,
"signo_id": 1,
"cpf": "12345678909",
"nome": "Kevenny de Jesus Santos",
"data_nascimento": "2000-06-23T00:00:01.001Z",
"email": "[email protected]",
"telefone": "7998836127",
"resumo": "olá, meu nome é kevenny"
}
Parâmetro | Tipo | Descrição |
---|---|---|
tipos_sanguineo_id |
int |
Obrigatório. Novo ID do tipo sanguineo (na tabela de tipo sanguineo) |
signo_id |
int |
Obrigatório. Novo ID do signo (na tabela de signos) |
cpf |
String |
Obrigatório. Novo CPF para o perfil |
nome |
String |
Obrigatório. Novo nome para o perfil |
data_nascimento |
datetime |
Obrigatório. Nova Data de nascimento usuario |
email |
String |
Obrigatório. Novo Email para o perfil |
telefone |
String |
Obrigatório. Novo Telefone para o perfil |
resumo |
String |
Obrigatório. Novo resumo para o perfil |
DELETE /perfis/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
int |
Obrigatório. O ID do perfil que deseja deletar |
GET /signos
GET /tipo-sanguineos
GET /instituicoes
GET /competencias
POST /competencias-perfis
Body (JSON):
{
"competencia_id": 1,
"perfil_id": 1
}
Parâmetro | Tipo | Descrição |
---|---|---|
competencia_id |
int |
Obrigatório. O ID da competencia (na tabela de competencias) |
perfil_id |
int |
Obrigatório. O ID do perfil (na tabela de perfis) |
GET /formacoes
POST /formacoes
Body (JSON):
{
"instituicao_id": 1,
"perfil_id": 1,
"nome": "Formacao 1"
}
Parâmetro | Tipo | Descrição |
---|---|---|
instituicao_id |
int |
Obrigatório. O ID da instituição (na tabela de instituicoes) |
perfil_id |
int |
Obrigatório. O ID do perfil (na tabela de perfis) |
nome |
String |
Obrigatório. Nome da Formação |
GET /experiencias
POST /experiencias
Body (JSON):
{
"perfil_id": 1,
"empresa": "Empresa 1",
"inicio": "20200101",
"fim": "20200101",
"atual_trabalho": 1,
"cargo": "Desenvolvedor Back End"
}
Parâmetro | Tipo | Descrição |
---|---|---|
perfil_id |
int |
Obrigatório. O ID do perfil (na tabela de perfis) |
empresa |
String |
Obrigatório. Nome da Empresa |
inicio |
datetime |
Obrigatório. Data de inicio |
fim |
datetime |
Obrigatório. Data de fim |
atual_trabalho |
int |
Obrigatório. valor de verificação de trabalhando atualmente |
cargo |
String |
Obrigatório. Cargo Atual |
Para executar testes, primeiramente você vai precisar instalar o PyTest:
pip install pytest
Pronto, agora você já pode executa-los, rode:
python -m pytest