[INITIAL] -> Did a basic API implementation
start with: ```cargo install cargo-watch && cargo watch -q -c -w src/ -x run``` --- this currently only returns "This is a Simple CRUD API";
This commit is contained in:
1666
Cargo.lock
generated
Normal file
1666
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
12
Cargo.toml
Normal file
12
Cargo.toml
Normal file
@@ -0,0 +1,12 @@
|
||||
[package]
|
||||
name = "rsAPI"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
chrono = { version = "0.4.41", features = ["serde"] }
|
||||
pretty_env_logger = "0.5.0"
|
||||
serde = { version = "1.0.219", features = ["derive"] }
|
||||
tokio = { version = "1.47.0", features = ["full"] }
|
||||
uuid = { version = "1.17.0", features = ["v4"] }
|
||||
warp = "0.3.7"
|
||||
0
src/handler.rs
Normal file
0
src/handler.rs
Normal file
39
src/main.rs
Normal file
39
src/main.rs
Normal file
@@ -0,0 +1,39 @@
|
||||
use std::env;
|
||||
|
||||
use serde::Serialize;
|
||||
use warp::{reply::json, Filter, Rejection, Reply};
|
||||
|
||||
type WebResult<T> = std::result::Result<T, Rejection>;
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct GenericResponse {
|
||||
pub status: String,
|
||||
pub message: String,
|
||||
}
|
||||
|
||||
pub async fn health_checker_handler() -> WebResult<impl Reply> {
|
||||
const MESSAGE: &str = "This is a Simple CRUD API";
|
||||
|
||||
let jsonresponse = GenericResponse {
|
||||
status: "success".to_string(),
|
||||
message: MESSAGE.to_string(),
|
||||
};
|
||||
|
||||
Ok(json(&jsonresponse))
|
||||
}
|
||||
|
||||
#[tokio::main] // needed for async main
|
||||
async fn main() {
|
||||
pretty_env_logger::init();
|
||||
|
||||
let health_checker = warp::path!("api" / "healthchecker")
|
||||
.and(warp::get())
|
||||
.and_then(health_checker_handler); // don't call the function here!
|
||||
|
||||
let routes = health_checker.with(warp::log("api"));
|
||||
|
||||
println!("[LOG]: Server started successfully.");
|
||||
|
||||
// serve the server on localhost:8080
|
||||
warp::serve(routes).run(([0, 0, 0, 0], 8080)).await;
|
||||
}
|
||||
0
src/model.rs
Normal file
0
src/model.rs
Normal file
0
src/response.rs
Normal file
0
src/response.rs
Normal file
Reference in New Issue
Block a user