274 votos

¿Qué es Rack middleware?

¿Qué es Rack middleware en Ruby? No pude encontrar ninguna buena explicación para lo que quieren decir con "middleware".

367voto

Chris McCauley Puntos 9764

Bastidor como el Diseño

Bastidor de middleware es más que "una manera de filtrar una petición y respuesta" - es una aplicación de la tubería patrón de diseño para los servidores web que utilizan Rack.

Es muy limpia separa los diferentes etapas de la tramitación de una solicitud de separación de preocupaciones ser un objetivo clave de todo bien diseñado productos de software.

Por ejemplo, con perchero que puede tener diferentes etapas de la pipeline de hacer:

  • Autenticación: cuando la solicitud llega, son los usuarios detalles de inicio de sesión correctos? ¿Cómo puedo validar este OAuth, Autenticación HTTP Básica, de nombre/contraseña?

  • Autorización: "es el usuario autorizado a realizar esta tarea en particular?", es decir. la seguridad basada en roles.

  • Caché: he procesado este pedido ya, puedo devolver un resultado en caché?

  • Decoración: ¿cómo puedo mejorar la solicitud para realizar el procesamiento aguas abajo mejor?

  • Rendimiento y control de Uso: lo que las estadísticas pueden recibo de la solicitud y la respuesta?

  • Ejecución: en realidad la gestión de la solicitud y proporcionar una respuesta.

Ser capaz de separar las distintas etapas (y, opcionalmente, incluir en ellos) es de una gran ayuda en el desarrollo bien estructurado aplicaciones.

Comunidad

También hay un gran eco-sistema de desarrollo de alrededor de Middleware de Rack - usted debería ser capaz de encontrar la pre-construcción de componentes del bastidor a hacer todos los pasos anteriores y más. Ver el Estante de GitHub wiki para una lista de middleware.

¿Cuál es el Middleware?

Middleware es un terrible término que hace referencia a cualquier componente de software/biblioteca que ayuda pero que no está directamente involucrado en la ejecución de alguna tarea. Muy ejemplos comunes son el registro, autenticación y la otra común, horizontal de los componentes de procesamiento. Estos tienden a ser las cosas que todo el mundo necesita a través de múltiples aplicaciones, pero no mucha gente interesada (o debería estar) en la construcción de sí mismos.

Más Información

79voto

Thomas Fankhauser Puntos 1899

Escribí un post de blog sobre esto: ¿qué es el estante, por favor?

Debe a empezar con los conceptos de la parrilla en pocos minutos.

20voto

Gaurav Chande Puntos 49

Tuve un problema entendiendo Rack solo por una buena cantidad de tiempo. Sólo lo entendí después de trabajar en esta miniatura servidor web Ruby haciéndome. He compartido mis aprendizajes sobre bastidor (en forma de una historia) aquí en mi blog: http://gauravchande.com/what-is-rack-in-ruby-rails

Regeneración es más que Bienvenido.

4voto

djcp Puntos 121

He usado Rack de middleware para resolver un par de problemas:

  1. La captura de JSON parse errores personalizados con Bastidor de middleware y regresar con un formato agradable mensajes de error cuando el cliente envía arrestado JSON
  2. La Compresión de contenido a través de Rack::Deflater

Se daba bastante elegante correcciones en ambos casos.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X