Ракета (веб-фреймворк)
Эта статья может чрезмерно полагаться на источники, слишком тесно связанные с предметом , что потенциально препятствует тому, чтобы статья была проверяемой и нейтральной . ( декабрь 2023 г. ) |
Разработчик(и) | Серхио Бенитес [1] |
---|---|
Первоначальный выпуск | 2016 |
Стабильная версия | 0.5.1 [2] ![]() |
Репозиторий | github |
Написано в | Ржавчина |
Операционная система | Linux , macOS , Windows , FreeBSD , OpenBSD |
Тип | Веб-фреймворк |
Лицензия | Лицензия MIT или лицензия Apache |
Веб-сайт | ракета |
Rocket — это веб-фреймворк, написанный на Rust . [3] [4] Он поддерживает HTTP-запросы , веб-сокеты JSON , шаблоны и многое другое. Его дизайн был вдохновлен Rails , Flask , Bottle и Yesod . [5] Он лицензируется по лицензии MIT или Apache License .
Чтобы создать веб-сервер с помощью Rocket, пользователь определяет приложение, а затем использует функцию «монтирования», чтобы прикрепить к нему «маршруты». Каждый «маршрут» представляет собой функцию ржавчины с прикрепленным к ней макросом . Функция определит код, который должен отвечать на HTTP-запрос . Макрос, написанный как часть объявления функции, будет определять, какой HTTP-метод (например, GET, POST, PUT и т. д.) он должен обрабатывать, а также шаблон, описывающий URL-адрес, к которому он должен относиться.
Пример
[ редактировать ]Это пример работающего ракетного приложения:
#[macro_use] extern crate rocket;
#[get("/hello/<name>/<age>")]
fn hello(name: &str, age: u8) -> String {
format!("Hello, {} year old named {}!", age, name)
}
#[launch]
fn rocket() -> _ {
rocket::build().mount("/", routes![hello])
}
Отправка HTTP-запроса GET в /hello/John/20 вернет следующий ответ:
Hello, 20 year old named John!
.
Функции
[ редактировать ]Rocket реализует следующие возможности:
- Маршрутизация — Rocket позволяет пользователю определять структуру маршрутов, которые должно учитывать приложение, а также код, который должен выполняться в различных комбинациях маршрутизации. Например, следующий код заставит приложение Rocket реагировать на
/hello
маршрут с «Hello World»:#[get("/")] fn index() -> &'static str { "Hello, world!" }
- Данные формы — Rocket позволяет пользователю определить модель Serde и использовать ее для анализа данных формы, а также передавать их как собственный объект ржавчины обработчику маршрута.
- Защитники запросов — обработчики маршрутов могут содержать специальные параметры, называемые «Защитники запросов», которые предназначены для предотвращения вызова кода внутри обработчика в случае невыполнения определенного условия. Эту функцию можно использовать, например, для предотвращения запросов, не содержащих ключ API . Используя функцию Request Guard, пользователь может определить условие в одном месте и применить его для предотвращения доступа к нескольким маршрутам, добавив защиту в свой список параметров.
Ссылки
[ редактировать ]- ^ «Серхио Бенитес - Кто я?» . sergio.bz . Проверено 30 мая 2020 г.
- ^ «Выпуск 0.5.1» . 23 мая 2024 г. Проверено 25 мая 2024 г.
- ^ Шлотауэр, Сара (14 декабря 2018 г.). «Speedy Rust Framework для веб-приложений прожигает небо» . JAXenter . Проверено 29 мая 2020 г.
- ^ Эквуно, Обинна (18 октября 2019 г.). «Лучшие фреймворки Rust, которые стоит попробовать в 2019 году» . ЛогРокет . Проверено 29 мая 2020 г.
- ^ «Введение — Руководство по программированию ракет» . ракета.рс . Проверено 30 мая 2020 г.
Внешние ссылки
[ редактировать ]