axum update

This commit is contained in:
quantulr
2024-01-19 23:57:09 +08:00
parent 6a9a732150
commit 159d040089
4 changed files with 18 additions and 3 deletions

2
.env Normal file
View File

@ -0,0 +1,2 @@
PORT=13000
API_VERSION=1

7
Cargo.lock generated
View File

@ -165,6 +165,12 @@ version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
[[package]]
name = "dotenvy"
version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
[[package]] [[package]]
name = "encoding_rs" name = "encoding_rs"
version = "0.8.33" version = "0.8.33"
@ -326,6 +332,7 @@ name = "hik-push-bot"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"axum", "axum",
"dotenvy",
"reqwest", "reqwest",
"serde", "serde",
"serde_json", "serde_json",

View File

@ -12,3 +12,4 @@ tokio = { version = "1.35.1", features = ["full"] }
tower = "0.4.13" tower = "0.4.13"
serde = { version = "1.0.195", features = ["derive"] } serde = { version = "1.0.195", features = ["derive"] }
serde_json = "1.0.111" serde_json = "1.0.111"
dotenvy = "0.15.7"

View File

@ -1,8 +1,10 @@
use std::env;
use axum::http::StatusCode; use axum::http::StatusCode;
use axum::{ use axum::{
routing::{get, post}, routing::{get, post},
Json, Router, Json, Router,
}; };
use dotenvy::dotenv;
use serde_json::Value; use serde_json::Value;
use crate::event_type::get_event_type_map; use crate::event_type::get_event_type_map;
@ -41,14 +43,17 @@ async fn event_rcv_handle_v2(
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {
// load environment variables from .env file
dotenv().expect(".env file not found");
let port = env::var("PORT").expect("PORT is not set in .env file");
// build our application with a single route // build our application with a single route
let app = Router::new() let app = Router::new()
.route("/", get(|| async { "Hello, World!" })) .route("/", get(|| async { "Hello, World!" }))
.route("/eventRcv", post(event_rcv_handle)) .route("/eventRcv", post(event_rcv_handle_v2));
.route("/eventRcv2", post(event_rcv_handle_v2));
// run our app with hyper, listening globally on port 3000 // run our app with hyper, listening globally on port 3000
let listener = tokio::net::TcpListener::bind("0.0.0.0:13000") let listener = tokio::net::TcpListener::bind(format!("0.0.0.0:{}", port))
.await .await
.unwrap(); .unwrap();
axum::serve(listener, app).await.unwrap(); axum::serve(listener, app).await.unwrap();