Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lucasfrancaid/todo-api

A back-end Todo API created to productive front-end developers
https://github.com/lucasfrancaid/todo-api

api django-rest-framework postgresql swagger todo

Last synced: 5 days ago
JSON representation

A back-end Todo API created to productive front-end developers

Awesome Lists containing this project

README

        

[![LinkedIn][linkedin-shield]][linkedin-url]



Todo API



Construído para desenvolvedores front-end produtivos.

Documentação com Swagger (DEMO)




💻 Tecnologias   |   
🕵️ Sobre o projeto   |   
🚀 Iniciando   |   
🆙 Como contribuir   |   
📬 Contate-me


## 💻 Tecnologias
* [Django](https://www.djangoproject.com/)
* [Django Rest Framework](https://www.django-rest-framework.org/)
* [JWT Authentication](https://django-rest-framework-simplejwt.readthedocs.io/en/latest/)
* [Swagger](https://drf-yasg.readthedocs.io/en/stable/)
* [PostgreSQL](https://www.postgresql.org/)


## 🕵️ Sobre o projeto
Todo API, é um projeto criado com Django Rest Framework na intenção de aumentar a produtividade de desenvolvedores front-end. Dado que um desenvolvedor quer treinar suas habilidades ou experimentar uma nova tecnologia (no front-end), pode reaproveitar essa API focando apenas no necessário.

O que você pode construir utilizando essa API:
- Criação de usuários (Users Endpoint)
- Autenticação de usuários via JWT (Auth Endpoint)
- Ler, criar, atualizar e deletar tarefas (Task Endpoint)


## 🚀 Iniciando o projeto
Para iniciar vamos utilizar o Docker, então garanta que você tem instalado em sua máquina o Docker e o Docker Compose. Tudo certinho? Então execute na pasta raíz do projeto:
```bash
cp .env.sample .env
sudo docker-compose up
```

API disponível nas seguintes URL:


- Documentação com Swagger: http://localhost:8000/api/docs/
- Documentação com Redoc: http://localhost:8000/api/redoc/
- Auth Endpoint [POST]: http://localhost:8000/api/auth/token/
- Users Endpoint [POST]: http://localhost:8000/api/users/
- Tasks Endpoint [GET, POST, PUT, DELETE]: http://localhost:8000/api/tasks/
- Painel de Admin: http://localhost:8000/admin/
```
[ADMIN LOGIN]
user: admin
pass: 123
```

Caso prefira, utilize as rotas pré-definidas com o Postman:

[![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/ab48013b4c23ceb3666c)


## Observações
- O CORS já está configurado para aceitar as requisições do front-end
- Crie um usuário na rota Users, e o utilize na rota de autenticação
- Para criar tasks, é necessário que o usuário esteja autenticado, para isso é só enviar no Header de cada requisição:
```js
'Authorization': 'Bearer (token)'
```
- Todos os dados serão persistidos na base de dados (PostgreSQL)
- Você pode gerenciar os dados do banco utilizando a interface de admin
- A API possui Rate Limit por IP, sendo o número de requisições para anônimos 100/dia e autenticados 5000/dia


## 🆙 Como contribuir

- Faça um fork desse repositório
- Crie uma branch com sua feature, para isso execute ```git checkout -b nome-feature```
- Desenvolva sua implementação, adicione seus commits e execute ```git push origin nome-feature```
- Abra um Pull Request explanando sua implementação


## 📬 Contato

Lucas França

https://lucasfrancaid.com.br/


[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/lucasfrancaid