Взлетать! Изучение различных методов получения статуса ответа в Rocket

Метод 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.