Django REST API

Desafio Celero (Python 3 e Django Rest Framework)


Projeto desenvolvido como parte do processo seletivo da empresa Celero em junho/2021

πŸ“ ConteΓΊdo

🧐 Sobre

A finalidade deste desafio Γ© testar as habilidades e conhecimento com Python 3 e Django Rest Framework. O objetivo serΓ‘ criar uma API rest para servir os dados do dataset β€œ120 years of Olympic history: athletes and results” presente no Kaggle (https://www.kaggle.com/heesoo37/120-years-of-olympic-history-athletes-and-results#athlete_events.csv)

🏁 Iniciando

Instruçáes para rodar o projeto.

PrΓ© Requisitos

Python 3.9 e os tens listados no arquivo requirements.txt.

asgiref==3.3.4
atomicwrites==1.4.0
attrs==21.2.0
colorama==0.4.4
Django==3.2.4
django-filter==2.4.0
djangorestframework==3.12.4
iniconfig==1.1.1
Markdown==3.3.4
numpy==1.20.3
packaging==20.9
pandas==1.2.4
pluggy==0.13.1
py==1.10.0
pyparsing==2.4.7
pytest==6.2.4
python-dateutil==2.8.1
pytz==2021.1
six==1.16.0
sqlparse==0.4.1
toml==0.10.2

Instalando

No powershell, digitar o comando abaixo para instalar todos os pacotes usados no projeto:

pip install -r requirements.txt

πŸ”§ Testes realizados

Como poderΓ£o realizar os testes automatizados.

Quais os principais testes realizados

Ainda nΓ£o desenvolvidos

Aqui serΓ£o exibidos os testes

codificação dos testes

Os testes serΓ£o no padrΓ£o do pytest

🎈 Como Usar a API

http://127.0.0.1:8000/athlete/43578
  • Para fazer a atualização da base de dados atravΓ©z de um arquivo CSV deve-se acessar a pΓ‘gina http://127.0.0.1:8000/upload_csv/
    • OBS: Para atualizar via CSV deve-se ter no arquivo as seguintes colunas:
"Name","Sex","Age","Height","Weight", "Team","NOC","Games","Year","Season","City","Sport","Event","Medal"

⛏️ Usado no Projeto

✍️ Autor

🌳 Árvore do Projeto

Desafio_Celero
β”œβ”€ .gitignore
β”œβ”€ athlete_events
β”‚  β”œβ”€ admin.py
β”‚  β”œβ”€ api
β”‚  β”‚  β”œβ”€ serializers.py
β”‚  β”‚  └─ viewsets.py
β”‚  β”œβ”€ apps.py
β”‚  β”œβ”€ migrations
β”‚  β”‚  β”œβ”€ 0001_initial.py
β”‚  β”‚  β”œβ”€ 0002_rename_athletesevents_athletes.py
β”‚  β”‚  β”œβ”€ 0003_auto_20210608_2245.py
β”‚  β”‚  β”œβ”€ 0004_rename_athletes_athlete.py
β”‚  β”‚  β”œβ”€ 0005_auto_20210609_2235.py
β”‚  β”‚  β”œβ”€ 0006_auto_20210609_2344.py
β”‚  β”‚  β”œβ”€ 0007_auto_20210609_2346.py
β”‚  β”‚  β”œβ”€ 0008_alter_athlete_id.py
β”‚  β”‚  β”œβ”€ 0009_alter_athlete_id.py
β”‚  β”‚  β”œβ”€ 0010_alter_athlete_id.py
β”‚  β”‚  β”œβ”€ 0011_alter_athlete_event.py
β”‚  β”‚  β”œβ”€ 0012_alter_athlete_event.py
β”‚  β”‚  └─ __init__.py
β”‚  β”œβ”€ models.py
β”‚  β”œβ”€ tests.py
β”‚  β”œβ”€ urls.py
β”‚  β”œβ”€ views.py
β”‚  └─ __init__.py
β”œβ”€ athlete_events.csv
β”œβ”€ db.sqlite3
β”œβ”€ desafio_celero
β”‚  β”œβ”€ asgi.py
β”‚  β”œβ”€ settings.py
β”‚  β”œβ”€ urls.py
β”‚  β”œβ”€ wsgi.py
β”‚  └─ __init__.py
β”œβ”€ manage.py
β”œβ”€ README.md
β”œβ”€ requirements.txt
β”œβ”€ static
β”‚  └─ css
β”‚     β”œβ”€ reset.css
β”‚     └─ style.css
└─ templates
   β”œβ”€ base.html
   └─ data_upload.html