diff --git a/content/docs/getting-started.md b/content/docs/getting-started.md index 03cae15..0ede4d0 100644 --- a/content/docs/getting-started.md +++ b/content/docs/getting-started.md @@ -43,6 +43,26 @@ accepts a function that should return an application factory. That's it! Now, compile and run the program with `cargo run`. Head over to ``http://localhost:8088/`` to see the results. +### Using Attribute Macros to Define Routes + +Alternatively, you can define routes using macro attributes which +allow you to specify the routes above your functions like so: + +{{< include-example example="getting-started" section="macro-attributes">}} + +You can then register the route using `service()`: + +```rust +App::new() + .service(index3) +``` + +For consistency reasons, this documentation only uses the explicit syntax shown at the +beginning of this page. However, if you prefer this syntax you should feel free to +use it any time you declare a route as it's only syntactic sugar. + +To learn more, see [actix-web-codegen]. + ### Auto-reloading If you want, you can have an automatically reloading server during development @@ -50,4 +70,5 @@ that recompiles on demand. This isn't necessary, but it makes rapid prototyping more convenient as you can see changes instantly upon saving. To see how this can be accomplished, have a look at the [autoreload pattern][autoload]. +[actix-web-codegen]: https://docs.rs/actix-web-codegen/0.1.2/actix_web_codegen/ [autoload]: ../autoreload/ diff --git a/examples/getting-started/src/main.rs b/examples/getting-started/src/main.rs index 4b2cfa6..8208bae 100644 --- a/examples/getting-started/src/main.rs +++ b/examples/getting-started/src/main.rs @@ -10,6 +10,15 @@ fn index2() -> impl Responder { } // +// +use actix_web::get; + +#[get("/hello")] +fn index3() -> impl Responder { + HttpResponse::Ok().body("Hey there!") +} +// + //
fn main() { HttpServer::new(|| {