Метод 1: использование StatusEnum
Rocket предоставляет перечисление под названием Status, которое представляет статусы HTTP-ответов. Получить статус ответа можно с помощью метода status()типа Response. Вот пример:
use rocket::http::Status;
#[get("/")]
fn index() -> &'static str {
"Hello, Rocket!"
}
fn main() {
rocket::ignite().mount("/", routes![index]).launch();
}
Метод 2. Проверка объекта ответа
Другой подход заключается в проверке всего объекта ответа. Rocket предоставляет тип Response, который содержит различную информацию об ответе, включая статус. Вот пример:
use rocket::response::content;
use rocket::response::Response;
use rocket::http::Status;
#[get("/")]
fn index() -> Response<'static> {
let response_body = content::Html("<h1>Hello, Rocket!</h1>".into());
Response::build()
.status(Status::Ok)
.header(ContentType::HTML)
.body(response_body)
}
fn main() {
rocket::ignite().mount("/", routes![index]).launch();
}
Метод 3: сопоставление с шаблоном в перечислении Status
Если вам нужно выполнить различные действия в зависимости от статуса ответа, вы можете использовать сопоставление с шаблоном в перечислении Status. Вот пример:
use rocket::http::Status;
#[get("/")]
fn index() -> &'static str {
match rocket::response::status() {
Status::Ok => "Success!",
Status::NotFound => "Page not found!",
Status::InternalServerError => "Something went wrong!",
_ => "Unknown status",
}
}
fn main() {
rocket::ignite().mount("/", routes![index]).launch();
}
Получение статуса ответа в платформе Rocket необходимо для эффективной обработки HTTP-запросов. В этой статье мы рассмотрели три метода: использование перечисления Status, проверка объекта ответа и сопоставление с шаблоном перечисления Status. Используя эти методы, вы можете уверенно обрабатывать статусы ответов в своих приложениях Rocket.