From 37651d79d58b5508d565e2ca320c7e942bc4c0f8 Mon Sep 17 00:00:00 2001 From: Roberto Huertas Date: Fri, 30 Jun 2023 00:16:05 +0200 Subject: [PATCH] docs(backend): shuttle --- docs/src/02_01_workspace_setup.md | 6 +- docs/src/02_02_shuttle.md | 75 +++++++++++++++++++ docs/src/SUMMARY.md | 1 + docs/src/assets/{ => 21}/cargo_build.png | Bin docs/src/assets/{ => 21}/gitignore.png | Bin docs/src/assets/{ => 21}/workspace_error.png | Bin docs/src/assets/22/cargo_shuttle_run.png | Bin 0 -> 43880 bytes 7 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 docs/src/02_02_shuttle.md rename docs/src/assets/{ => 21}/cargo_build.png (100%) rename docs/src/assets/{ => 21}/gitignore.png (100%) rename docs/src/assets/{ => 21}/workspace_error.png (100%) create mode 100644 docs/src/assets/22/cargo_shuttle_run.png diff --git a/docs/src/02_01_workspace_setup.md b/docs/src/02_01_workspace_setup.md index 6e8ba40..d07d461 100644 --- a/docs/src/02_01_workspace_setup.md +++ b/docs/src/02_01_workspace_setup.md @@ -77,7 +77,7 @@ The `vsc` flag is used in this case to tell `cargo` to not initialize a new git Don't worry if you receive the error message below, it is expected. We will fix it later. ``` -![Workspace Error](./assets/workspace_error.png) +![Workspace Error](./assets/21/workspace_error.png) ### Creating the `shuttle` crate @@ -109,7 +109,7 @@ cargo build You should see something like this: -![Cargo Build](./assets/cargo_build.png) +![Cargo Build](./assets/21/cargo_build.png) ```admonish warning Don't commit yet as we still have some work to do! @@ -130,7 +130,7 @@ Aside from that, **remove** all the `.gitignore` files from the crates as they a This is how it should look like: -![.gitignore](./assets/gitignore.png) +![.gitignore](./assets/21/gitignore.png) ## Committing the changes diff --git a/docs/src/02_02_shuttle.md b/docs/src/02_02_shuttle.md new file mode 100644 index 0000000..5665859 --- /dev/null +++ b/docs/src/02_02_shuttle.md @@ -0,0 +1,75 @@ +# Exploring Shuttle + +Open the `api/shuttle` folder and look for the `src/main.rs` file. This is the entry point of our application. + +You'll see something like this: + +```rust +use actix_web::{get, web::ServiceConfig}; +use shuttle_actix_web::ShuttleActixWeb; + +#[get("/")] +async fn hello_world() -> &'static str { + "Hello World!" +} + +#[shuttle_runtime::main] +async fn actix_web( +) -> ShuttleActixWeb { + let config = move |cfg: &mut ServiceConfig| { + cfg.service(hello_world); + }; + + Ok(config.into()) +} +``` + +Shuttle has generated a simple `hello-world` [Actix-web](https://actix.rs) application for us. + +As you can see, it's pretty straight-forward. + +The `actix_web` function is the entry point of our application. It returns a `ShuttleActixWeb` instance that will be used by Shuttle to run our application. + +In this function, we're going to configure our different routes. In this case, we only have one route: `/`, which is mapped to the `hello_world` function. + +## Let's run it! + +In the **root of the project**, run the following command: + +```bash +cargo shuttle run +``` + +You should see something like this: + +![shuttle_run](./assets/22/cargo_shuttle_run.png) + +Now *curl* the `/` route: + +```bash +curl localhost:8000 +``` + +Or *open* it in your browser. + +Hopefully, **you should see a greeting** in your screen! + +And that's how easy it is to create a simple API with [Shuttle](https://www.shuttle.rs)! + +```admonish +We're using [Actix-web](https://actix.rs) as our web framework, but you can any other framework supported by Shuttle. + +Check out the [Shuttle documentation](https://docs.shuttle.rs/introduction/welcome) to learn more. Browse through the `Examples` section to see how to use Shuttle with other frameworks. + +[Shuttle](https://www.shuttle.rs/) supports the following frameworks: +- [Actix-web](https://actix.rs) +- [Axum](https://github.com/tokio-rs/axum) +- [Salvo](https://next.salvo.rs/) +- [Poem](https://github.com/poem-web/poem) +- [Thruster](https://github.com/thruster-rs/Thruster) +- [Tower](https://github.com/tower-rs/tower) +- [Warp](https://github.com/seanmonstar/warp) +- [Rocket](https://rocket.rs) +- [Tide](https://github.com/http-rs/tide) + +``` diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 76a9365..d538afd 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -9,6 +9,7 @@ # Backend - [Backend](./02_backend.md) - [Workspace Setup](./02_01_workspace_setup.md) + - [Exploring Shuttle](./02_02_shuttle.md) # Frontend - [Frontend](./04_frontend.md) diff --git a/docs/src/assets/cargo_build.png b/docs/src/assets/21/cargo_build.png similarity index 100% rename from docs/src/assets/cargo_build.png rename to docs/src/assets/21/cargo_build.png diff --git a/docs/src/assets/gitignore.png b/docs/src/assets/21/gitignore.png similarity index 100% rename from docs/src/assets/gitignore.png rename to docs/src/assets/21/gitignore.png diff --git a/docs/src/assets/workspace_error.png b/docs/src/assets/21/workspace_error.png similarity index 100% rename from docs/src/assets/workspace_error.png rename to docs/src/assets/21/workspace_error.png diff --git a/docs/src/assets/22/cargo_shuttle_run.png b/docs/src/assets/22/cargo_shuttle_run.png new file mode 100644 index 0000000000000000000000000000000000000000..85a08aa444baa95a69eab3ee2a69a6586e27cf87 GIT binary patch literal 43880 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

7z#SZ+G(7#J|bOdCMqVdZ$Y=B?x~R~ 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 eM{nvB&u_bse&(G$EHb#foSKrBBJ#