https://github.com/henriqueotogami/flask-rest-api
Aula de Flask e REST API, do Bootcamp Desenvolvedor Full Stack Python.
https://github.com/henriqueotogami/flask-rest-api
digital-innovation-one flask python rest-api
Last synced: 2 months ago
JSON representation
Aula de Flask e REST API, do Bootcamp Desenvolvedor Full Stack Python.
- Host: GitHub
- URL: https://github.com/henriqueotogami/flask-rest-api
- Owner: henriqueotogami
- License: mit
- Created: 2020-09-09T22:39:55.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-03-04T05:35:52.000Z (over 1 year ago)
- Last Synced: 2025-06-28T09:38:49.006Z (12 months ago)
- Topics: digital-innovation-one, flask, python, rest-api
- Language: Python
- Homepage:
- Size: 9.88 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Flask REST API
> Projeto desenvolvido no Bootcamp Desenvolvedor Full Stack Python. API REST com Flask para gerenciamento de informações de desenvolvedores (nome e habilidades), com exemplos progressivos desde "Hello World" até CRUD completo.
## 📋 Sobre o Projeto
Este repositório contém o material e os códigos da aula de **Framework Flask e REST API**, ministrada por [Rafael Galeani](https://github.com/rafegal). Inclui uma API que gerencia informações de desenvolvedores (nome e habilidades), com exemplos em três níveis: introdução ao Flask, API de testes e API de desenvolvedores com operações GET, POST, PUT e DELETE.
## 📁 Estrutura do Projeto
### Olá Flask (`ola_flask/`)
- **run.py** — Exemplo mínimo "Hello World" com Flask; primeira rota e execução do servidor.
### Primeira API (`primeira_api/`)
- **app.py** — Modelo de API para testes: rota com parâmetro (id), uso de `jsonify` e `request`, exemplo de soma via POST.
### API de Desenvolvedores (`dev_api/`)
- **app.py** — API principal: listagem e inclusão de desenvolvedores (GET/POST em `/dev/`), consulta, alteração e exclusão por ID (GET/PUT/DELETE em `/dev//`).
### Documentação (raiz do repositório)
- **theory.md** — Conceitos de API, REST, REST API, métodos HTTP, JSON e Flask.
- **configuration-steps.md** — Passo a passo: PIP, ambiente virtual, instalação do Flask e uso do Postman.
- **challenges.md** — Desafios propostos (ex.: API de cadastro de tarefas).
## 📂 Estrutura do repositório
```
README.md
requirements.txt
theory.md
configuration-steps.md
challenges.md
ola_flask/
run.py # Hello World Flask
primeira_api/
app.py # API de testes (jsonify, request, soma)
dev_api/
app.py # API de desenvolvedores (CRUD)
```
## 🛠️ Tecnologias Utilizadas
- **Python** — Linguagem de programação
- **Flask** — Framework web para criação da API
- **JSON** — Formato de dados da API
- **Postman** — Ferramenta para testar requisições HTTP (GET, POST, PUT, DELETE)
## 📝 Funcionalidades Principais
### API de Desenvolvedores (`dev_api`)
- **GET /dev/** — Listar todos os desenvolvedores
- **POST /dev/** — Incluir novo desenvolvedor (nome e habilidades)
- **GET /dev//** — Consultar desenvolvedor por ID
- **PUT /dev//** — Alterar desenvolvedor por ID
- **DELETE /dev//** — Excluir desenvolvedor por ID (tratamento de erros e mensagens de status)
### Primeira API (`primeira_api`)
- Resposta JSON com parâmetro de rota e exemplo de soma via POST.
### Olá Flask (`ola_flask`)
- Rota raiz retornando "Hello World".
## 🚀 Como Executar
### Pré-requisitos
- Python 3.7+
- pip
### Instalação das dependências
```bash
pip install -r requirements.txt
```
### Criação do ambiente virtual (recomendado)
**Linux/macOS:**
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
**Windows:**
```cmd
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
```
### Executando cada aplicação
**Olá Flask:**
```bash
cd ola_flask
python run.py
# Acesse: http://127.0.0.1:5000/
```
**Primeira API:**
```bash
cd primeira_api
python app.py
# Rotas: http://127.0.0.1:5000/ e http://127.0.0.1:5000/soma (POST)
```
**API de Desenvolvedores:**
```bash
cd dev_api
python app.py
# Base URL: http://127.0.0.1:5000/dev/
```
Use o **Postman** (ou similar) para testar os métodos GET, POST, PUT e DELETE nas rotas indicadas.
## 📚 Conteúdos Abordados
- ✅ Conceitos de API, REST e REST API
- ✅ Métodos HTTP (GET, POST, PUT, DELETE)
- ✅ Uso de `jsonify` e `request` no Flask
- ✅ Decoradores e rotas com parâmetros
- ✅ Testes de API com Postman
- ✅ Estrutura de respostas JSON e tratamento de erros
## ⚙️ Como Funciona
### API de Desenvolvedores
1. Os dados são mantidos em uma lista em memória (`desenvolvedores`) com campos: `id`, `nome`, `habilidades`.
2. **GET /dev/** retorna a lista completa em JSON.
3. **POST /dev/** recebe JSON no body, atribui um `id` sequencial e adiciona à lista.
4. **GET /dev//** retorna o desenvolvedor na posição `id` ou mensagem de erro se não existir.
5. **PUT /dev//** substitui o registro na posição `id` pelos dados enviados no body.
6. **DELETE /dev//** remove o registro na posição `id` e retorna confirmação.
### Documentação adicional
- **[Teoria](theory.md)** — Detalhamento dos conceitos (API, REST, HTTP, JSON, Flask).
- **[Configuração](configuration-steps.md)** — PIP, ambiente virtual, Flask e Postman.
- **[Desafios](challenges.md)** — Desafios propostos (ex.: API de tarefas).
**Status dos desafios: 0 / 4**
## 📄 Licença
Este projeto não possui arquivo de licença definido. Para uso educacional no contexto do Bootcamp Desenvolvedor Full Stack Python.
## 📖 Referências
- Código-fonte em `ola_flask/`, `primeira_api/` e `dev_api/`
- Documentação do [Flask](https://flask.palletsprojects.com/)
- Material da aula — Bootcamp Desenvolvedor Full Stack Python (Rafael Galeani)
---
### Hashtags
#Python #Flask #RESTAPI #Backend #APIREST #JSON #Postman #Bootcamp #FullStack #WebDevelopment #OpenSource #GitHub #CodeExamples #Learning #Developer
### Meta Keywords
```
Python, Flask, REST API, API REST, JSON, Postman, Bootcamp Full Stack,
desenvolvedor Python, backend, métodos HTTP, GET POST PUT DELETE,
CRUD, integração de APIs, código aberto
```
____
**Desenvolvido por Henrique Matheus Alves Pereira**
*Editor: Visual Studio Code | Tema: Monokai Pro | Extensões: Error Lens, Git Lens, Python*