Para criar uma API em Python, uma das bibliotecas mais populares é o Flask. Ele é leve e fácil de usar, perfeito para aplicações simples. A seguir, vou mostrar um exemplo de como criar uma API para gerenciar livros e autores.
bash
pip install Flask
Criar a Estrutura do Projeto:
Crie uma nova pasta para o seu projeto e dentro dela, crie um arquivo chamado app.py
.
Escreva o Código da API:
Aqui está um exemplo básico de uma API que gerencia livros e autores:
```python from flask import Flask, jsonify, request
app = Flask(name)
# Banco de dados simulado usando dicionários livros = [ {"id": 1, "titulo": "1984", "autor": "George Orwell"}, {"id": 2, "titulo": "O Senhor dos Anéis", "autor": "J.R.R. Tolkien"} ]
autores = [ {"id": 1, "nome": "George Orwell"}, {"id": 2, "nome": "J.R.R. Tolkien"} ]
# Rota para obter todos os livros @app.route('/livros', methods=['GET']) def get_livros(): return jsonify(livros)
# Rota para obter um livro específico
@app.route('/livros/
# Rota para adicionar um novo livro @app.route('/livros', methods=['POST']) def add_livro(): novo_livro = request.get_json() novo_livro['id'] = len(livros) + 1 livros.append(novo_livro) return jsonify(novo_livro), 201
# Rota para obter todos os autores @app.route('/autores', methods=['GET']) def get_autores(): return jsonify(autores)
# Rota para obter um autor específico
@app.route('/autores/
# Rota para adicionar um novo autor @app.route('/autores', methods=['POST']) def add_autor(): novo_autor = request.get_json() novo_autor['id'] = len(autores) + 1 autores.append(novo_autor) return jsonify(novo_autor), 201
if name == 'main': app.run(debug=True) ```
bash
python app.py
Sua API estará disponível em http://127.0.0.1:5000
.
Testando as Rotas: Você pode usar ferramentas como o Postman ou o cURL para testar a API.
Listar todos os livros:
bash
curl http://127.0.0.1:5000/livros
Adicionar um novo livro:
bash
curl -X POST http://127.0.0.1:5000/livros -H "Content-Type: application/json" -d '{"titulo": "O Hobbit", "autor": "J.R.R. Tolkien"}'
Listar todos os autores:
bash
curl http://127.0.0.1:5000/autores
Adicionar um novo autor:
bash
curl -X POST http://127.0.0.1:5000/autores -H "Content-Type: application/json" -d '{"nome": "J.K. Rowling"}'
Esse é um exemplo básico, mas você pode expandi-lo com funcionalidades como autenticação, persistência de dados (usando um banco de dados), tratamento de erros, e muito mais. Você pode também explorar frameworks mais robustos como Django ou FastAPI dependendo das suas necessidades.
Criar uma API em Python pode ser bem simples, especialmente se você usar o framework Flask. Aqui está um passo a passo básico para você começar:
Instalar Flask: Primeiro, você precisa instalar o Flask. Você pode fazer isso usando o pip:
pip install flask
Criar um arquivo Python: Crie um novo arquivo Python, por exemplo, app.py
.
Importar Flask e criar a aplicação: No seu arquivo app.py
, importe o Flask e crie uma instância da aplicação:
from flask import Flask, jsonify
app = Flask(__name__)
Definir uma rota: Defina uma rota básica que retorna uma mensagem JSON:
@app.route('/')
def home():
return jsonify(message="Hello, World!")
Executar a aplicação: Adicione o código para executar a aplicação:
if __name__ == '__main__':
app.run(debug=True)
Executar o servidor: No terminal, execute o arquivo app.py
:
python app.py
Isso iniciará um servidor local, e você poderá acessar a API no seu navegador em http://127.0.0.1:5000/
.
A documentação oficial do Flask é a melhor escolha para estudar e entender este framework. Ela é extremamente completa e bem organizada, https://flask.palletsprojects.com/en/3.0.x/
Se precisar de mais detalhes ou tiver alguma dúvida específica, estou disponível para ajudar na modalidade tarefas da plataforma!
Já citaram Flask, então vou citar outra:
Basicamente é um arquivo, código simples e reduzido, tem site, documentação e vários tutoriais no youtube. Não se esqueça de uma pyenv ou docker.
main.py
: from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
fastapi dev main.py
Fonte: https://fastapi.tiangolo.com/
Aqui está um resumo de como criar uma API em Python para consultar o site da **Receita Federal** (CNPJ): de exemplo:
### Passos para Criar a API
1. **Instalar Dependências**:
- Instale as bibliotecas necessárias com:
```bash
pip install requests beautifulsoup4 Flask
```
2. **Criar a API com Flask**:
- Usaremos o Flask para criar a API, `requests` para fazer a requisição ao site da Receita Federal, e `BeautifulSoup` para fazer o scraping dos dados.
3. **Código da API**:
- **Consulta ao CNPJ**: A API recebe um **CNPJ** como parâmetro e retorna as informações públicas do CNPJ do site da Receita Federal.
```python
import requests
from bs4 import BeautifulSoup
from flask import Flask, jsonify, request
app = Flask(__name__)
def consultar_cnpj(cnpj):
url = f'https://www.receitafederal.gov.br/Aplicacoes/SSL/ATIVA/CPF/consultapublica.asp?cnpj={cnpj}'
response = requests.get(url)
if response.status_code != 200:
return None
soup = BeautifulSoup(response.content, 'html.parser')
dados = {}
try:
dados = {
"nome_fantasia": soup.find('span', {'id': 'nome_fantasia'}).text.strip(),
"razao_social": soup.find('span', {'id': 'razao_social'}).text.strip(),
"cnpj_status": soup.find('span', {'id': 'status'}).text.strip(),
}
except Exception:
return None
return dados
@app.route('/consultar_cnpj', methods=['GET'])
def consultar_cnpj_api():
cnpj = request.args.get('cnpj')
if not cnpj:
return jsonify({"error": "CNPJ é obrigatório"}), 400
dados_cnpj = consultar_cnpj(cnpj)
if dados_cnpj:
return jsonify(dados_cnpj)
return jsonify({"error": "CNPJ não encontrado"}), 404
if __name__ == '__main__':
app.run(debug=True)
```
4. **Como Usar**:
- Execute a API com `python app.py`.
- Faça uma requisição `GET` para `/consultar_cnpj?cnpj=12345678000195` para consultar um CNPJ e obter as informações.
### Considerações:
- **Web Scraping**: O scraping é usado aqui porque a Receita Federal não tem uma API pública para consultas.
- **Legalidade**: Verifique os **termos de uso** do site da Receita Federal, pois scraping pode ser restrito.
- **Alternativa**: Caso a Receita Federal crie uma API oficial, é melhor usá-la em vez de scraping.
Esse é um exemplo básico para consultar CNPJ. A estrutura do site pode mudar, então você precisará ajustar o código de scraping conforme necessário.