This repository has been archived on 2025-04-28. You can view files and clone it, but cannot push or open issues or pull requests.
rust-web/src/main.rs
2024-04-26 19:48:30 -07:00

37 lines
1.0 KiB
Rust

mod api;
mod err;
mod question;
use axum::{
http::StatusCode,
response::{IntoResponse, Response},
routing::{delete, get, post, put},
Router,
};
use std::net::SocketAddr;
async fn handle() -> Response {
(StatusCode::OK, "Visiting the root").into_response()
}
#[tokio::main]
async fn main() {
let store = question::Store::new();
let ip = SocketAddr::new([127, 0, 0, 1].into(), 3000);
let listener = tokio::net::TcpListener::bind(ip).await.unwrap();
let apis = Router::new()
.route("/question/:id", get(api::read_question))
.route("/questions", get(api::read_all_questions))
.route("/question", post(api::create_question))
.route("/question/:id", put(api::update_question))
.route("/question/:id", delete(api::delete_question))
.route("/answers", post(api::create_answer))
//.nest(path, router)
.with_state(store)
.fallback(err::handler_404);
let app = Router::new().route("/", get(handle)).merge(apis);
axum::serve(listener, app).await.unwrap();
}