Criando uma API Python com Flask

Criar uma API é uma habilidade essencial para desenvolvedores que desejam disponibilizar funcionalidades de suas aplicações para outros serviços ou usuários. Neste artigo, vamos explorar como criar uma API simples utilizando Flask, um micro framework de web para Python.

1. Introdução

Flask é um framework leve e fácil de usar, ideal para criar APIs e pequenas aplicações web. Vamos criar uma API que realiza operações básicas de CRUD (Create, Read, Update, Delete) em um banco de dados fictício de usuários.

Bibliotecas Necessárias

Certifique-se de ter as bibliotecas necessárias instaladas

pip install flask

2. Estrutura do Projeto

Organize seu projeto com a seguinte estrutura:

project/
│
├── app.py
└── requirements.txt

3. Criando a API com Flask

Código da API

No arquivo app.py, adicione o seguinte código:

from flask import Flask, request, jsonify

app = Flask(__name__)

# Banco de dados fictício
users = [
    {'id': 1, 'name': 'Alice', 'email': '[email protected]'},
    {'id': 2, 'name': 'Bob', 'email': '[email protected]'}
]

# Endpoint para obter todos os usuários
@app.route('/users', methods=['GET'])
def get_users():
    return jsonify(users)

# Endpoint para obter um usuário pelo ID
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
    user = next((user for user in users if user['id'] == user_id), None)
    if user:
        return jsonify(user)
    return jsonify({'message': 'User not found'}), 404

# Endpoint para adicionar um novo usuário
@app.route('/users', methods=['POST'])
def add_user():
    new_user = request.get_json()
    new_user['id'] = users[-1]['id'] + 1 if users else 1
    users.append(new_user)
    return jsonify(new_user), 201

# Endpoint para atualizar um usuário existente
@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
    user = next((user for user in users if user['id'] == user_id), None)
    if user:
        data = request.get_json()
        user.update(data)
        return jsonify(user)
    return jsonify({'message': 'User not found'}), 404

# Endpoint para deletar um usuário
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
    global users
    users = [user for user in users if user['id'] != user_id]
    return jsonify({'message': 'User deleted'})

if __name__ == '__main__':
    app.run(debug=True)

Executando a API

Para iniciar a API, execute o seguinte comando no terminal dentro do diretório do projeto:

python app.py

A API estará disponível em http://127.0.0.1:5000.

4. Testando a API

Você pode usar curl ou uma ferramenta como Postman para testar os endpoints da API.

4.1. Obter Todos os Usuários

 

curl -X GET http://127.0.0.1:5000/users

4.2. Obter um Usuário pelo ID

 

curl -X GET http://127.0.0.1:5000/users/1

4.3. Adicionar um Novo Usuário

 

curl -X POST -H "Content-Type: application/json" -d '{"name": "Charlie", "email": "[email protected]"}' http://127.0.0.1:5000/users

4.4. Atualizar um Usuário Existente

 

curl -X PUT -H "Content-Type: application/json" -d '{"name": "Charlie Brown", "email": "[email protected]"}' http://127.0.0.1:5000/users/3

4.5. Deletar um Usuário

 

curl -X DELETE http://127.0.0.1:5000/users/3

5. Conclusão

Neste artigo, criamos uma API simples usando Flask que realiza operações básicas de CRUD em um banco de dados fictício de usuários. Passamos pela criação da estrutura do projeto, implementação dos endpoints e testes com curl.

Este exercício fornece uma base sólida para entender como APIs funcionam e como integrá-las em suas aplicações. Continue explorando e adicionando funcionalidades mais complexas à sua API conforme avança no aprendizado de Flask e desenvolvimento web.

Rolar para cima