Creando un micro framework WSGI con el PEP 3333

Abstract

Casi todos los framework web hechos en Python pueden conectarse con los mismo servidores de aplicaciones al salir a producción. Esto es gracias a las convenciones WSGI (PEP 3333). En esta charla explicaré a detalle cómo es que WSGI funciona creando un pequeño framework de ejemplo.

Description

Hoy en día existen múltiples opciones de frameworks para desarrollar aplicaciones web con python, y todas ellas son buenas, realmente cualquiera de estos frameworks puede resolver problemas de escalabilidad o de lanzamiento a producción sin muchos problemas, y esto se debe a que prácticamente todos ellos pueden interactuar con los mismos servidores de aplicaciones, que son capaces de hacer el trabajo rudo de administrar las peticiones de usuarios. Pero eso no es magia, es gracias al estándar WSGI, el cual propone un conjunto de reglas y convenciones para que cualquier framework web pueda funcionar con cualquier servidor de aplicaciones.

En esta charla propongo una introducción a este interesante tema poco explorado, me gustaría indagar en el fondo de los frameworks web, y ayudar a entender cómo es que una petición HTTP puede convertirse en un objeto request y viceversa.

Todos los elementos en las capas de vista y enrutamiento de cualquier framework web son casi los mismos, además de aprender la sintaxis de cada uno de ellos, considero que es elemental entender el flujo por el que las aplicaciones web tienen que pasar, esa capa que como desarrolladores no necesitamos tocar, pero por lo mismo está siendo ignorada por las nuevas generaciones, y como ingenieros es algo que deberíamos por lo menos comprender.

Audiencia

Esta charla está orientada a personas con experiencia desarrollando aplicaciones web, sin importar si esta es mucha o poca. Cualquier conocimiento básico de programación también puede ayudar a comprender la charla, pero si el asistente nunca ha trabajado en desarrollo web podría perderse con facilidad en el tema.

Esquema

Introducción al PEP 3333 (5 minutos)

  • Historia WSGI.
  • Ejemplos actuales.

Los conceptos de Framework y Server de WSGI (4 minutos)

  • Convenciones para un framework.
  • Convenciones para un servidor.

Breve vistazo del funcionamiento de un servidor (4 minutos)

  • Ejemplo en código de cómo es que funciona el servidor WSGI.

Estructura de un Framework WSGI (5 minutos)

  • Primeras líneas de código para iniciar la aplicación web.
  • Ejemplo en código de un Hola Mundo WSGI.

Usar los middleware para comenzar a crear el framework (5 minutos)

  • Usar funciones que puedan captar el request antes de que llegue a la vista.
  • Analizando los objetos request y response.
  • Ejemplo de un middleware simple.

Un método dispatch para iniciar el enrutamiento de la aplicación (5 minutos)

  • Captar el request un middleware que pueda llamar la vista adecuada.
  • Iniciar un sistema primitivo de enrutamiento.

Seguridad en la aplicación (5 minutos)

  • Ejemplo de cómo iniciar la capa de seguridad por medio de un middleware.
  • Ejemplo de middleware para verificar sesión en el request.

Primeras vistas en la aplicación (5 minutos)

  • Programar diferentes vistas de ejemplo.
  • Usar los métodos de enrutamiento y seguridad para las diferentes vistas.

Ejemplos de librerías auxiliares al desarrollar una micro framework (5 min)

  • Uso de la librería webob para crear objetos request.
  • Crear serializadores con la librería Colander.
  • Implementación de SQLAlchemy para manejar la base de datos.