From 826b670b2715e610570b38ba3485bd1fb792abd0 Mon Sep 17 00:00:00 2001 From: quantulr <35954003+quantulr@users.noreply.github.com> Date: Thu, 18 Jan 2024 14:21:54 +0800 Subject: [PATCH] event rcv --- Cargo.lock | 1 + Cargo.toml | 1 + src/main.rs | 16 +++++++++++----- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5d71cde..d63ec21 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -327,6 +327,7 @@ version = "0.1.0" dependencies = [ "axum", "reqwest", + "serde", "tokio", "tower", ] diff --git a/Cargo.toml b/Cargo.toml index cf02eff..154fcaf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,3 +10,4 @@ axum = "0.7.4" reqwest = { version = "0.11.23", features = [] } tokio = { version = "1.35.1", features = ["full"] } tower = "0.4.13" +serde = { version = "1.0.195", features = ["derive"] } diff --git a/src/main.rs b/src/main.rs index 2cbe6ca..a43b530 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,16 @@ -use axum::{routing::get, Router}; +use axum::{routing::{get, post}, Router, Json}; use axum::http::StatusCode; +use serde::Deserialize; -async fn event_rcv_handle() -> Result { - tokio::spawn(async { +#[derive(Deserialize)] +struct EventRecv { + content: String, +} + +async fn event_rcv_handle(Json(form_data): Json) -> Result { + tokio::spawn(async move { println!("收到告警,向飞书推送消息"); - reqwest::get("https://www.feishu.cn/flow/api/trigger-webhook/d96aa14944ed0595d831e9d68834b47b?content=收到告警信息").await + reqwest::get(format!("https://www.feishu.cn/flow/api/trigger-webhook/d96aa14944ed0595d831e9d68834b47b?content={}", &form_data.content)).await }); Ok(String::from("success")) } @@ -14,7 +20,7 @@ async fn main() { // build our application with a single route let app = Router::new() .route("/", get(|| async { "Hello, World!" })) - .route("/eventRcv", get(event_rcv_handle)); + .route("/eventRcv", post(event_rcv_handle)); // run our app with hyper, listening globally on port 3000 let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();