https://github.com/ianfelps/tasks_api
Projeto de API RESTful para gerenciar tarefas, desenvolvido em Python com FastAPI e SQLite. A API permite criar, ler, atualizar e deletar tarefas de forma simples e eficiente.
https://github.com/ianfelps/tasks_api
api api-restful database fastapi python sqlite3
Last synced: about 2 months ago
JSON representation
Projeto de API RESTful para gerenciar tarefas, desenvolvido em Python com FastAPI e SQLite. A API permite criar, ler, atualizar e deletar tarefas de forma simples e eficiente.
- Host: GitHub
- URL: https://github.com/ianfelps/tasks_api
- Owner: ianfelps
- Created: 2025-01-15T02:22:37.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-02T13:29:00.000Z (over 1 year ago)
- Last Synced: 2025-10-28T16:36:21.606Z (8 months ago)
- Topics: api, api-restful, database, fastapi, python, sqlite3
- Language: Python
- Homepage:
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tasks API
Este é um projeto de API RESTful para gerenciamento tarefas, desenvolvido em Python com FastAPI e SQLite. A API permite criar, ler, atualizar e deletar tarefas de forma simples e eficiente.
## Funcionalidades
- Listar todas as tarefas
- Obter uma tarefa específica pelo ID
- Adicionar uma nova tarefa
- Atualizar uma tarefa existente
- Deletar uma tarefa
## Tecnologias Utilizadas
- **Python:** Linguagem de programação.
- **FastAPI:** Framework para construir APIs de forma rápida e eficiente.
- **SQLite:** Banco de dados relacional leve utilizado para armazenar as tarefas.
- **Pydantic:** Biblioteca para validação de dados e criação de modelos.
- **Uvicorn:** Servidor ASGI para executar a aplicação FastAPI.
## Endpoints
### 1. Home
- **GET** `/`
Retorna uma mensagem de boas-vindas.
### 2. Listar todas as tarefas
- **GET** `/tasks`
Retorna uma lista de todas as tarefas.
### 3. Obter uma tarefa específica
- **GET** `/tasks/{id}`
Retorna os detalhes de uma tarefa específica pelo ID.
### 4. Adicionar uma nova tarefa
- **POST** `/tasks`
Adiciona uma nova tarefa. O corpo da requisição deve ser um JSON com o seguinte formato:
```json
{
"title": "Título da tarefa",
"description": "Descrição da tarefa",
"category": "Categoria da tarefa",
"status": false
}
```
### 5. Atualizar uma tarefa existente
- **PUT** `/tasks/{id}`
Atualiza uma tarefa existente. O corpo da requisição deve ser um JSON com o mesmo formato do endpoint de adição.
### 6. Deletar uma tarefa
- **DELETE** `/tasks/{id}`
Deleta uma tarefa específica pelo ID.
### Estrutura do Repositório
1. **`.json`**:
- Contém um modelo de tarefa em formato JSON, definindo a estrutura básica com campos como `title`, `description`, `category` e `status`.
2. **`actions.py`**:
- Contém funções para interagir com o banco de dados SQLite, incluindo inicialização do banco, leitura, adição, atualização e exclusão de tarefas. Utiliza logging para registrar operações.
3. **`app.py`**:
- Arquivo principal da aplicação FastAPI. Define as rotas da API, inicializa o banco de dados na inicialização da aplicação e implementa as operações CRUD (Create, Read, Update, Delete) para as tarefas.
4. **`local.db`**:
- Arquivo do banco de dados SQLite que armazena as tarefas. É criado automaticamente quando a aplicação é executada pela primeira vez.
5. **`models.py`**:
- Define os modelos de dados utilizando Pydantic. Inclui um modelo de tarefa (`Task`) e um modelo de consulta (`query_model`) para validação de dados.
6. **`requirements.txt`**:
- Lista as dependências do projeto, especificando as versões das bibliotecas necessárias para executar a aplicação, como FastAPI, Pydantic e Uvicorn.
## Instalação
Certifique-se de ter o Python 3.7 ou superior instalado em sua máquina.
1. Clone o repositório:
```bash
git clone https://github.com/ianfelps/tasks_api.git
```
2. Instale as dependências:
```bash
pip install -r requirements.txt
```
## Execução
Para executar a API, use o seguinte comando:
```bash
uvicorn app:app --reload
```
A API estará disponível localmente em `http://localhost:8000`.
### Conclusão
O repositório `tasks_api` fornece uma implementação básica de uma API RESTful para gerenciamento de tarefas, utilizando tecnologias modernas e práticas recomendadas para desenvolvimento de APIs. Cada arquivo tem um papel específico, contribuindo para a funcionalidade e a organização do projeto.