API REST con Python y Flask
Una API REST permite que aplicaciones se comuniquen entre si via HTTP.
Instalacion
pip install flask
Tu primera API
from flask import Flask, jsonify, request
app = Flask(__name__)
# Base de datos en memoria (ejemplo)
usuarios = [
{"id": 1, "nombre": "Ana", "email": "[email protected]"},
{"id": 2, "nombre": "Carlos", "email": "[email protected]"},
]
# GET - obtener todos
@app.route("/usuarios", methods=["GET"])
def get_usuarios():
return jsonify(usuarios)
# GET - obtener uno
@app.route("/usuarios/", methods=["GET"])
def get_usuario(uid):
u = next((u for u in usuarios if u["id"] == uid), None)
if not u:
return jsonify({"error": "No encontrado"}), 404
return jsonify(u)
# POST - crear
@app.route("/usuarios", methods=["POST"])
def crear_usuario():
datos = request.json
nuevo = {"id": len(usuarios) + 1, "nombre": datos["nombre"], "email": datos["email"]}
usuarios.append(nuevo)
return jsonify(nuevo), 201
if __name__ == "__main__":
app.run(debug=True)
Probar la API
# Ver todos
curl http://localhost:5000/usuarios
# Ver uno
curl http://localhost:5000/usuarios/1
# Crear
curl -X POST http://localhost:5000/usuarios \
-H "Content-Type: application/json" \
-d '{"nombre":"Luis","email":"[email protected]"}'
Desde Termux
pip install flask
python api.py
# En otra ventana:
curl http://localhost:5000/usuarios