Desarrollo de aplicaciones REST en Python

Desarrollo de aplicaciones REST en Python

Introducción

Una API REST es una interfaz de programación de aplicaciones que utiliza el protocolo HTTP para exponer recursos. Los recursos son objetos o datos que se pueden consultar, crear, actualizar o eliminar.

Python es un lenguaje de programación de alto nivel que es adecuado para el desarrollo de aplicaciones REST. Es un lenguaje fácil de aprender y usar, y tiene una gran cantidad de bibliotecas y herramientas disponibles para el desarrollo de API.

En este tutorial, aprenderás a crear una aplicación REST en Python. Usaremos el framework Flask, que es una herramienta sencilla para crear aplicaciones web.

Prerequisitos

Para seguir este tutorial, necesitarás los siguientes conocimientos:

  • Fundamentos de Python
  • Fundamentos de HTTP

Creando una aplicación Flask

El primer paso es crear una aplicación Flask. Para ello, crea un directorio para tu proyecto y crea un archivo llamado app.py.

# app.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "Hola, mundo!"

if __name__ == "__main__":
    app.run()

Este código crea una aplicación Flask simple que responde a las solicitudes a la ruta / con la cadena «Hola, mundo!».

Definiendo recursos

En una API REST, los recursos son objetos o datos que se pueden consultar, crear, actualizar o eliminar. Para definir un recurso en Flask, usaremos la clase Resource.

# app.py

from flask import Flask, request, Response
from flask_restful import Resource

app = Flask(__name__)

class User(Resource):
    def get(self, id):
        # Devuelve un usuario por su ID
        return {"id": id, "name": "John Doe"}

    def post(self):
        # Crea un nuevo usuario
        data = request.get_json()
        user = {"id": len(users) + 1, "name": data["name"]}
        users.append(user)
        return user, 201

    def put(self, id):
        # Actualiza un usuario
        data = request.get_json()
        user = users[id - 1]
        user["name"] = data["name"]
        return user, 200

    def delete(self, id):
        # Elimina un usuario
        users.pop(id - 1)
        return "Usuario eliminado", 200

users = []

app.add_resource(User, "/users/<int:id>")

if __name__ == "__main__":
    app.run()

Este código define un recurso llamado User. El recurso User tiene cuatro métodos:

  • get(): Devuelve un usuario por su ID.
  • post(): Crea un nuevo usuario.
  • put(): Actualiza un usuario.
  • delete(): Elimina un usuario.

Pruebas de la aplicación

Para probar la aplicación, abre tu navegador y navega a la siguiente URL:

http://localhost:5000/users

Deberías ver la siguiente respuesta:

[
  {
    "id": 1,
    "name": "John Doe"
  }
]

También puedes probar los métodos del recurso User usando la herramienta curl:

curl -X GET http://localhost:5000/users/1
{"id":1,"name":"John Doe"}

curl -X POST -H «Content-Type: application/json» -d ‘{«name»: «Jane Doe»}’ http://localhost:5000/users

{"id":2,"name":"Jane Doe"}

curl -X PUT -H «Content-Type: application/json» -d ‘{«name»: «Jane Doe Doe»}’ http://localhost:5000/users/2

{"id":2,"name":"Jane Doe Doe"}
curl -X DELETE http://localhost:5000/users/2
Usuario eliminado

Conclusión

En este tutorial, aprendiste a crear una aplicación REST en Python usando el framework Flask. Puedes