#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// ...
let cnt_ajax: u32 = 0;
//
let app = Router::new()
//
.route("/main", get(handler))
.nest_service("/front/ver_01", ServeDir::new(format!("{}/front", assets_path.to_str().unwrap())))
.route("/users", post(create_user));
//
let listener = tokio::net::TcpListener::bind("127.0.0.1:3000").await.unwrap();
axum::serve(listener, app).await.unwrap();
// ...
}
async fn create_user(
// this argument tells axum to parse the request body
// as JSON into a `FromBrowser` type
Json(payload): Json<FromBrowser>,
) -> (StatusCode, Json<User>) {
// подготавливаю данные на отправку в браузер:
let user = User {
id: payload.id,
username: payload.username,
tm: payload.tm,
cnt: cnt_ajax + 1, // считаю отправки;
};
// this will be converted into a JSON response
// with a status code of `201 Created`
(StatusCode::CREATED, Json(user))
}
// the output to our `create_user` handler
// то, что буду отправлять с сервера раст на браузер:
#[derive(Serialize, Debug)]
struct User {
id: u64,
username: String,
tm: f64,
cnt: u32, // считаю отправки;
}