ok
This commit is contained in:
commit
015af82f22
1804
Cargo.lock
generated
Normal file
1804
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
17
Cargo.toml
Normal file
17
Cargo.toml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[package]
|
||||||
|
name = "hello_world"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
hyper = { version = "*", features = ["full"] }
|
||||||
|
tokio = { version = "*", features = ["full"] }
|
||||||
|
mysql = "*"
|
||||||
|
serde_json = "*"
|
||||||
|
serde = "*"
|
||||||
|
serde_derive = "*"
|
||||||
|
bcrypt = "0.12"
|
||||||
|
rand = "0.3.0"
|
||||||
|
|
1026
src/main.rs
Normal file
1026
src/main.rs
Normal file
File diff suppressed because it is too large
Load Diff
55
src/main1.rs
Normal file
55
src/main1.rs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
use serde_derive::{Serialize, Deserialize};
|
||||||
|
use mysql::*;
|
||||||
|
use mysql::prelude::*;
|
||||||
|
use std::convert::Infallible;
|
||||||
|
use std::net::SocketAddr;
|
||||||
|
use hyper::{Body, Request, Response, Server};
|
||||||
|
use hyper::service::{make_service_fn, service_fn};
|
||||||
|
#[derive(Serialize, Deserialize)]
|
||||||
|
struct dane {
|
||||||
|
id:i32,
|
||||||
|
data:String
|
||||||
|
}
|
||||||
|
|
||||||
|
fn getJson() -> Vec<dane> {
|
||||||
|
let url = "mysql://inz:HaLzqw68CbabS8Smz3Vx!@localhost:3306/inz";
|
||||||
|
|
||||||
|
let opts = Opts::from_url(url).unwrap();
|
||||||
|
let pool = Pool::new(opts).unwrap();
|
||||||
|
let mut conn = pool.get_conn().unwrap();
|
||||||
|
let res = conn
|
||||||
|
.query_map(
|
||||||
|
"SELECT id, data from dane",
|
||||||
|
|(id,data)| {
|
||||||
|
dane { id,data }
|
||||||
|
},
|
||||||
|
);
|
||||||
|
return res.unwrap();
|
||||||
|
}
|
||||||
|
async fn hello_world(_req: Request<Body>) -> Result<Response<Body>> {
|
||||||
|
let path :String = _req.uri().path().to_string();
|
||||||
|
if path != "/mysql"{
|
||||||
|
return Ok(Response::new(path.into()));
|
||||||
|
}else{
|
||||||
|
return Ok(Response::new(serde_json::to_string(&getJson()).unwrap().into()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[tokio::main]
|
||||||
|
async fn main() {
|
||||||
|
let addr = SocketAddr::from(([0, 0, 0, 0], 1000));
|
||||||
|
|
||||||
|
// A `Service` is needed for every connection, so this
|
||||||
|
// creates one from our `hello_world` function.
|
||||||
|
let make_svc = make_service_fn(|_conn| async {
|
||||||
|
// service_fn converts our function into a `Service`
|
||||||
|
Ok::<_, Infallible>(service_fn(hello_world))
|
||||||
|
});
|
||||||
|
|
||||||
|
let server = Server::bind(&addr).serve(make_svc);
|
||||||
|
|
||||||
|
// Run this server for... forever!
|
||||||
|
if let Err(e) = server.await {
|
||||||
|
eprintln!("server error: {}", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user