Articulo de referencia

Rocket (framework web)

{{Cite web|title=Sergio Benitez - Who Am I?|url=https://sergio.bz/|website=sergio.bz|access-date=2020-05-30}} "},"released":{"wt":"{{Start date and age|2016}}"},"discontinued":{...

Rocket es un framework web escrito en Rust . [ 3 ] [ 4 ] Admite el manejo de solicitudes HTTP , Web Sockets , JSON , plantillas y más. Su diseño se inspiró en Rails , Flask , Bottle y Yesod . [ 5 ] Tiene doble licencia bajo la Licencia MIT y la Licencia Apache .

Para crear un servidor web con Rocket, el usuario define una aplicación y luego usa la función `mount` para asignarle rutas. Cada ruta es una función de Rust con una macro asociada. La función define el código que debe responder a una solicitud HTTP . La macro, incluida en la declaración de la función, define el método HTTP (como GET, POST, PUT, etc.) que debe manejar, así como un patrón que describe la URL a la que debe aplicarse.

Ejemplo

Este es un ejemplo de una aplicación funcional de cohetes:

#[macro_use] extern crate rocket ;#[get( "/hello/<name>/<age>" )] fn hello ( name : & str , age : u8 ) -> String { format! ( "Hola, {} años llamado {}!" , age , name ) }#[launch] fn rocket () -> _ { rocket :: build (). mount ( "/" , routes ! [ hello ]) }

Enviar una solicitud HTTP GET a /hello/John/50devolvería la siguiente respuesta:

Hello, 50 year old named John!.

Características

Rocket implementa las siguientes características:

  • Enrutamiento : Rocket permite al usuario definir la estructura de rutas que la aplicación debe considerar, así como el código que debe ejecutarse en diferentes combinaciones de enrutamiento. Por ejemplo, el siguiente código hará que la aplicación Rocket responda a la /helloruta con "Hola Mundo":
    #[get( "/" )] fn index () -> & ' static str { "Hola, mundo!" }
  • Datos del formulario: Rocket permite al usuario definir un modelo Serde y usarlo para analizar los datos del formulario y pasarlos como un objeto nativo de Rust al controlador de ruta.
  • Los controladores de ruta pueden contener parámetros especiales llamados "Request Guards" que impiden la ejecución del código del controlador si no se cumple una condición específica. Esta función se puede usar, por ejemplo, para bloquear solicitudes que no incluyan una clave API . Al usar Request Guard, el usuario puede definir la condición en un solo lugar y aplicarla para bloquear el acceso a varias rutas agregando el parámetro a su lista.

Referencias

  1. "Sergio Benitez - ¿Quién soy yo?" . sergio.bz . Consultado el 30 de mayo de 2020 .
  2. "Versión 0.5.1" . 23 de mayo de 2024. Consultado el 25 de mayo de 2024 .
  3. Schlothauer, Sarah (14 de diciembre de 2018). "El rapidísimo framework Rust para aplicaciones web arrasa" . JAXenter . Consultado el 29 de mayo de 2020 .
  4. Ekwuno, Obinna (18 de octubre de 2019). "Los mejores frameworks de Rust para probar en 2019" . LogRocket . Recuperado el 29 de mayo de 2020 .
  5. "Introducción - Guía de programación de Rocket" . rocket.rs . Consultado el 30 de mayo de 2020 .
  • Sitio web oficialEdita esto en Wikidata
  • Rocket en GitHub