Misión 3 · Lección 10
Creación de APIs con Flask (Flask-RESTful)
Objetivos
- Comprender qué es una API REST y su estructura.
- Aprender a construir endpoints en Flask.
- Usar Flask-RESTful para simplificar la creación de APIs.
¿Qué es una API REST?
- Una API REST expone recursos mediante URLs.
- Opera sobre métodos HTTP: GET, POST, PUT, DELETE.
- Intercambia datos usualmente en formato JSON.
Instalación
pip install flask-restful
Ejemplo básico con Flask-RESTful
from flask import Flask
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
class Hola(Resource):
def get(self):
return {"mensaje": "Hola Mundo"}
api.add_resource(Hola, "/hola")
GET y POST en un recurso
class Usuario(Resource):
def get(self):
return {"usuarios": ["Ana", "Luis"]}
def post(self):
return {"mensaje": "Usuario creado"}, 201
api.add_resource(Usuario, "/usuarios")
Parámetros en la URL
class Usuario(Resource):
def get(self, id):
return {"id": id, "nombre": f"Usuario {id}"}
api.add_resource(Usuario, "/usuarios/<int:id>")
PUT y DELETE
class Usuario(Resource):
def put(self, id):
return {"mensaje": f"Usuario {id} actualizado"}
def delete(self, id):
return {"mensaje": f"Usuario {id} eliminado"}
api.add_resource(Usuario, "/usuarios/<int:id>")
Manejo de datos JSON
from flask import request
class Producto(Resource):
def post(self):
data = request.get_json()
return {"producto": data}, 201
api.add_resource(Producto, "/productos")
Buenas Prácticas en APIs
- Usar nombres en plural para recursos (
/usuarios).
- Devolver códigos de estado HTTP correctos.
- Usar JSON como formato de respuesta estándar.
Ejercicio Guiado
- Instala
flask-restful en tu proyecto.
- Crea un recurso
/usuarios con GET y POST.
- Agrega rutas dinámicas para
/usuarios/<id> con GET, PUT y DELETE.
- Prueba los endpoints con Postman o curl.