actix / actix/actix-web

Returning 405 (Method not allowed) when using route macros

Ouverte
#2,735 2 commentaires 2 réactions 0 personnes assignées Voir sur GitHub
A-web-codegen C-improvement
Langage dominant
Rust
Étoiles
24.8k
Forks
1.9k
Merge moyen
23 h 10 min
PR mergées (30 j)
26

Description

## Expected Behavior
When a route string can be matched by one (or more) route macro paths (but zero method matches) then a 405 should be returned.

## Current Behavior
A 404 is returned.

## Steps to Reproduce (for bugs)

```rust
use actix_web::{get, App, Responder};

fn main() {}

#[get("/hello")]
async fn get_hello() -> impl Responder {
format!("Hello world!")
}

#[cfg(test)]
mod tests {
use super::*;
use actix_web::{http, test};

#[actix_web::test]
async fn test() {
let app = test::init_service(App::new().service(get_hello)).await;

let req = test::TestRequest::get().uri("/hello").to_request();
let resp = test::call_service(&app, req).await;
assert_eq!(resp.status(), http::StatusCode::OK);

let req = test::TestRequest::post().uri("/hello").to_request();
let resp = test::call_service(&app, req).await;
// Assertion fails!
assert_eq!(resp.status(), http::StatusCode::METHOD_NOT_ALLOWED);
}
}
```

## Your Environment

- Rust Version: 1.59
- Actix Web Version: 4.0.1

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.