565 - Una API con Python y sanic casi sin programar

565 - Una API con Python y sanic casi sin programar

sanic es un framwork para #python con el que crear API y web de forma sencilla, flexible y asíncrona. En 6 líneas puedes tener tu propia #api funcionando

1:25
-3:15

En los últimos días me he juntado con dos cuestiones que finalmente me han llevado a lo mismo. Por un lado, el reto de programación para este 2024, y por otro lado un problema que estoy teniendo con una API, y que ahora te contaré. La cuestión es que me ha llevado a investigar en torno a otros frameworks, que me den la posibilidad de levantar una API con Python de forma sencilla, y me he topado con sanic. Me ha llamado tanto la atención, que he decidido integrarla en el reto de 2024, y por su puesto dedicarle un episodio del podcast. Así que hoy te voy a hablar sobre crear un APY con Python y sanic casi sin programar.

Una API con Python y sanic casi sin programar

Sobre el reto de programación 2024

El primer reto de programación de 2024, es un bot que nos permite controlar y estar informado de todo lo que sucede en nuestro servidor en relación a Docker. Es tan sencillo o complejo, como un bot que esté permanente conectado al socket de Docker, y que en caso de que suceda algo nos informe, y por otro lado, que cuando nosotros queramos algo de él, también podamos interactuar.

En este sentido, siempre tenemos dos opciones, la utilización de un webhook o bien el uso de un pooling. Yo prefiero la primera de las dos opciones, pero sea como fuere, para este reto de programación, vamos a hacerlo de las dos formas, para aquellos que no tengan la posibilidad de poner un endpoint, también puedan hacer el reto.

Para el caso del webhook es necesario, poner ese endpoint, y lo mas sencillo, es ofrecerlo tipo API, que además te da otras opciones que seguro podremos explotar.

Sobre mi problema con la API

Flask y FastApi se corta la comunicación. Buscando un tercer framework di con sanic, que es un framework, cuya razón de ser lo dice toro, construye rápido, ejecuta rápido.

Sobre sanic

Sanic es un framework y servidor, que tiene unas características que lo hacen excelente para nuestros propósitos. En concreto,

  • Simple y ligero. Tiene una API realmente intuitiva y que no está sobre cargada, lo que te permitirá comenzar a trabajar en tu aplicación de inmediato.
  • Flexible. Aunque tienes una auténtica caja de herramientas, lo cierto es que te permite construir a tu manera, sin que esta caja de herramientas constriña tu desarrollo.
  • Rendimiento y escalabilidad. Este framework se ha implementado desde cero pensnado en la velocidad y escalabilidad como objetivo fundamental, y está preparado para aplicaciones web tanto pequeñas como grandes.
  • Con un servidor web. Está pensado para producción directa. De fábrica viene empquetado con un servidor web listo para poner en funcionamiento tu aplicación web.
  • Popular. A pesar de que yo no supiera de él, ultimamente siempre pensando en FastApi, lo cierto es que es uno de los frameworks mas populares y de los de asincronía el mas destacado.
  • Comunidad. Se trata de un proyecto mantenido y dirigido por la comunidad y para la comunidad.

¿Que me ha gustado?

Solo voy a destacar un punto que me ha gustado mucho, y que me traigo directamente de Rust y Axum, y es la carga de variables antes de levantar el servidor.

Levantar una API

Algo tan sencillo como estas seis líneas de código,

from sanic import Sanic
from sanic.response import text

app = Sanic("MyHelloWorldApp")

@app.get("/")
async def hello_world(request):
    return text("Hello, world.")

Algunos detalles del reto

Durante estos últimos días, he estado dando muchas vueltas a esto del reto de programación, y he pensado que voy a empezar desde cero, no se a ti que te parece, y además voy a utilizar Visual Studio Code para el mismo.

Respecto del uso de Visual Studio Code, no está alineado a mis intereses, pero entiendo que es el software mas utilizado y mas sencillo de conseguir, con lo que va a ser la opción por la que me decante inicialmente.


Más información,

1 comentario en “Una API con Python y sanic casi sin programar

  1. GO
    Gonzalo Ponce hace 4 semanas

    Me encantaría ver ese bot de Telegram interactuar con Sanic y que avise del contenedor de Docker caído muy importante, para mi ya que necesito eso mismo , gracias ansioso de ver en Youtube eso

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *