В Actix Web Framework , как использовать макросы атрибутов маршрута (#[http_method("route")]
) для привязки нескольких методов http к одной функции?
Например, у меня есть этот тривиальный конечная точка:
/// Returns a UUID4.
#[get("/uuid")]
async fn uuid_v4() -> impl Responder {
HttpResponse::Ok().json(Uuid {
uuid: uuid::Uuid::new_v4(),
})
}
Я хотел бы, чтобы такой же обработчик конечной точки HEAD
запросов, как мне это сделать? Мой первоначальный подход состоял в том, чтобы просто сложить макросы:
/// Returns a UUID4.
#[get("/uuid")]
#[head("/uuid")]
async fn uuid_v4() -> impl Responder {
HttpResponse::Ok().json(Uuid {
uuid: uuid::Uuid::new_v4(),
})
}
Но я получаю ошибку компиляции:
|
249 | async fn uuid_v4() -> impl Responder {
| ^^^^^^^ the trait `actix_web::handler::Factory<_, _, _>` is not implemented for `<uuid_v4 as actix_web::service::HttpServiceFactory>::register::uuid_v4`
Я прошел через actix-web
и actix-web-codegen docs
и не нашел ничего, связанного с этим