Replace route with Router::new().route() (#215)

This way there is now only one way to create a router:

```rust
use axum::{Router, handler::get};

let app = Router::new()
    .route("/foo", get(handler))
    .route("/foo", get(handler));
```

`nest` was changed in the same way:

```rust
use axum::Router;

let app = Router::new().nest("/foo", service);
```
This commit is contained in:
David Pedersen
2021-08-19 22:37:48 +02:00
committed by GitHub
parent 97b53768ba
commit ca4d9a2bb9
49 changed files with 652 additions and 625 deletions
+18 -13
View File
@@ -41,7 +41,7 @@ fn handle_error<E>(_: E) -> Result<StatusCode, Infallible> {
#[tokio::test]
async fn handler() {
let app = route(
let app = Router::new().route(
"/",
get(forever
.layer(timeout())
@@ -62,7 +62,7 @@ async fn handler() {
#[tokio::test]
async fn handler_multiple_methods_first() {
let app = route(
let app = Router::new().route(
"/",
get(forever
.layer(timeout())
@@ -84,7 +84,7 @@ async fn handler_multiple_methods_first() {
#[tokio::test]
async fn handler_multiple_methods_middle() {
let app = route(
let app = Router::new().route(
"/",
delete(unit)
.get(
@@ -109,7 +109,7 @@ async fn handler_multiple_methods_middle() {
#[tokio::test]
async fn handler_multiple_methods_last() {
let app = route(
let app = Router::new().route(
"/",
delete(unit).get(
forever
@@ -132,21 +132,22 @@ async fn handler_multiple_methods_last() {
#[test]
fn service_propagates_errors() {
let app = route::<_, Body>("/echo", service::post(Svc));
let app = Router::new().route::<_, Body>("/echo", service::post(Svc));
check_make_svc::<_, _, _, hyper::Error>(app.into_make_service());
}
#[test]
fn service_nested_propagates_errors() {
let app = route::<_, Body>("/echo", nest("/foo", service::post(Svc)));
let app =
Router::new().route::<_, Body>("/echo", Router::new().nest("/foo", service::post(Svc)));
check_make_svc::<_, _, _, hyper::Error>(app.into_make_service());
}
#[test]
fn service_handle_on_method() {
let app = route::<_, Body>(
let app = Router::new().route::<_, Body>(
"/echo",
service::get(Svc).handle_error(handle_error::<hyper::Error>),
);
@@ -156,7 +157,7 @@ fn service_handle_on_method() {
#[test]
fn service_handle_on_method_multiple() {
let app = route::<_, Body>(
let app = Router::new().route::<_, Body>(
"/echo",
service::get(Svc)
.post(Svc)
@@ -168,15 +169,17 @@ fn service_handle_on_method_multiple() {
#[test]
fn service_handle_on_router() {
let app =
route::<_, Body>("/echo", service::get(Svc)).handle_error(handle_error::<hyper::Error>);
let app = Router::new()
.route::<_, Body>("/echo", service::get(Svc))
.handle_error(handle_error::<hyper::Error>);
check_make_svc::<_, _, _, Infallible>(app.into_make_service());
}
#[test]
fn service_handle_on_router_still_impls_routing_dsl() {
let app = route::<_, Body>("/echo", service::get(Svc))
let app = Router::new()
.route::<_, Body>("/echo", service::get(Svc))
.handle_error(handle_error::<hyper::Error>)
.route("/", get(unit));
@@ -185,7 +188,8 @@ fn service_handle_on_router_still_impls_routing_dsl() {
#[test]
fn layered() {
let app = route::<_, Body>("/echo", get(unit))
let app = Router::new()
.route::<_, Body>("/echo", get(unit))
.layer(timeout())
.handle_error(handle_error::<BoxError>);
@@ -194,7 +198,8 @@ fn layered() {
#[tokio::test] // async because of `.boxed()`
async fn layered_boxed() {
let app = route::<_, Body>("/echo", get(unit))
let app = Router::new()
.route::<_, Body>("/echo", get(unit))
.layer(timeout())
.boxed()
.handle_error(handle_error::<BoxError>);