728x90
728x170
■ tide 크레이트를 사용해 값을 입력받는 웹 서버를 만드는 방법을 보여준다.
▶ Cargo.toml
[package]
name = "test_server"
version = "0.1.0"
edition = "2021"
[dependencies]
tide = "0.16"
async-std = {version = "1.8.0", features = ["attributes"]}
serde = {version = "1.0", features = ["derive"]}
▶ src/main.rs
use tide::prelude::*;
const SERVER_ADDRESS : &str = "127.0.0.1:8888";
#[derive(Deserialize, Serialize)]
struct UserInformation
{
name : String
}
#[async_std::main]
async fn main() -> tide::Result<()>
{
println!("http://{}/", SERVER_ADDRESS);
let mut server : tide::Server<()> = tide::new();
server.at("/")
.get
(
|_| async
{
Ok
(
tide::Response::builder(200)
.content_type(tide::http::mime::HTML)
.body
(
r#"<html>
<body>
<form action='hello'>
name : <input name='name' value='홍길동'>
<input type='submit' value='전송'>
</form>
</body>
</html>"#
)
.build()
)
}
);
server.at("/hello")
.get
(
|request : tide::Request<()>| async move
{
let user_information : UserInformation = request.query()?;
return Ok
(
tide::Response::builder(200)
.content_type(tide::http::mime::HTML)
.body(format!("<h1>안녕하세요, {}님</h1>", user_information.name))
.build()
);
}
);
server.listen(SERVER_ADDRESS).await?;
return Ok(());
}
728x90
그리드형(광고전용)
'Rust > tide' 카테고리의 다른 글
[RUST/TIDE] tide 크레이트를 사용해 초간단 웹 서버 만들기 (0) | 2023.06.08 |
---|---|
[RUST/TIDE] 크레이트 설치 : tide (0) | 2023.06.07 |