diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-10-07 08:49:39 -0400 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-10-07 08:49:39 -0400 |
commit | df75a5df706dcd6a309b23ce2444336fdf24f63c (patch) | |
tree | 58cf6bb9070988788e0eed556ee1c1129e27fd01 | |
parent | 6eeea26f281c67f3f1fbe3bffe839b4163b9d048 (diff) |
Add shared library message passing between frontend and backend
-rw-r--r-- | Cargo.lock | 10 | ||||
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | data/Cargo.toml | 10 | ||||
-rw-r--r-- | data/src/lib.rs | 6 | ||||
-rw-r--r-- | server/.env | 2 | ||||
-rw-r--r-- | server/Cargo.toml | 1 | ||||
-rw-r--r-- | server/src/main.rs | 9 | ||||
-rw-r--r-- | webapp/Cargo.toml | 1 | ||||
-rw-r--r-- | webapp/Trunk.toml | 8 | ||||
-rw-r--r-- | webapp/src/main.rs | 18 |
10 files changed, 49 insertions, 17 deletions
@@ -210,6 +210,14 @@ dependencies = [ ] [[package]] +name = "data" +version = "0.1.0" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] name = "dotenv" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -948,6 +956,7 @@ name = "server" version = "0.1.0" dependencies = [ "axum", + "data", "dotenv", "serde", "serde_json", @@ -1392,6 +1401,7 @@ version = "0.1.0" dependencies = [ "anyhow", "console_error_panic_hook", + "data", "dotenv", "env_logger", "getrandom", @@ -1,5 +1,6 @@ [workspace] members = [ + "data", "server", "webapp", ] diff --git a/data/Cargo.toml b/data/Cargo.toml new file mode 100644 index 0000000..58c5ba3 --- /dev/null +++ b/data/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "data" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +serde = { version = "1.0.145", features = ["derive"] } +serde_json = "1.0.85" diff --git a/data/src/lib.rs b/data/src/lib.rs new file mode 100644 index 0000000..7a11e59 --- /dev/null +++ b/data/src/lib.rs @@ -0,0 +1,6 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize)] +pub struct MyMessage { + pub message: String, +} diff --git a/server/.env b/server/.env index 5914598..720d4c7 100644 --- a/server/.env +++ b/server/.env @@ -1,4 +1,4 @@ RUST_LOG=info,tower_http=trace -BIND_ADDRESS=[::]:11120 +BIND_ADDRESS=[::]:11121 WEBAPP_PATH=../webapp/dist/ RUST_BACKTRACE=1
\ No newline at end of file diff --git a/server/Cargo.toml b/server/Cargo.toml index 943f20f..88dee76 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -14,3 +14,4 @@ tokio = { version = "1.21.2", features = ["full"] } tower-http = { version = "0.3.4", features = ["full"] } tracing = "0.1.37" tracing-subscriber = { version = "0.3.16", features = ["env-filter"] } +data = { path = "../data" } diff --git a/server/src/main.rs b/server/src/main.rs index dfbb4ef..aaa5798 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -1,7 +1,7 @@ use std::env; use axum::{routing::get, Json, Router}; -use serde::{Deserialize, Serialize}; +use data::MyMessage; use tracing::info; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; use tower_http::{trace::TraceLayer}; @@ -30,13 +30,8 @@ async fn main() { .unwrap(); } -#[derive(Serialize, Deserialize)] -struct MyMessage { - message: String, -} - async fn test() -> Json<MyMessage> { Json(MyMessage { - message: "Hello!".to_string(), + message: "Hello, ,World!".to_string(), }) } diff --git a/webapp/Cargo.toml b/webapp/Cargo.toml index 13a7e6a..39995a9 100644 --- a/webapp/Cargo.toml +++ b/webapp/Cargo.toml @@ -18,6 +18,7 @@ regex = "1.0" lazy_static = "1.4" gloo-net = "0.2.4" wasm-bindgen-futures = "0.4.33" +data = { path = "../data" } [dev-dependencies] env_logger = "0.8.4" diff --git a/webapp/Trunk.toml b/webapp/Trunk.toml index 842cc2f..8c891da 100644 --- a/webapp/Trunk.toml +++ b/webapp/Trunk.toml @@ -1,3 +1,11 @@ [build] target = "index.html" dist = "dist" + +[serve] +address = "::" +port = 11120 +watch = ["src"] + +[[proxy]] +backend = "http://localhost:11121/api/"
\ No newline at end of file diff --git a/webapp/src/main.rs b/webapp/src/main.rs index 8b77ea2..ef394a6 100644 --- a/webapp/src/main.rs +++ b/webapp/src/main.rs @@ -1,3 +1,4 @@ +use data::MyMessage; #[allow(unused_imports)] use log::{debug, error, info, warn}; use yew::prelude::*; @@ -26,15 +27,14 @@ pub fn app() -> Html { use_effect_with_deps( move |_| { wasm_bindgen_futures::spawn_local(async move { - msg.set( - Request::get("/api/test") - .send() - .await - .unwrap() - .json() - .await - .unwrap(), - ) + let m: MyMessage = Request::get("/api/test") + .send() + .await + .unwrap() + .json() + .await + .unwrap(); + msg.set(m.message) }); || () }, |