actix / actix/actix-web

Returning 405 (Method not allowed) when using route macros

Abierto
#2,735 2 comentarios 2 reacciones 0 asignados Ver en GitHub
A-web-codegen C-improvement
Lenguaje dominante
Rust
Estrellas
24.8k
Forks
1.9k
Merge medio
23 h 10 min
PR fusionados (30 d)
26

Descripción

## 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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.