1
0
mirror of https://github.com/actix/actix-extras.git synced 2024-11-27 17:22:57 +01:00
This commit is contained in:
Nikolay Kim 2017-10-07 00:53:36 -07:00
parent 9b7f2395e5
commit 3f253365b7

View File

@ -20,3 +20,56 @@ To use `actix-http`, add this to your `Cargo.toml`:
actix-http = { git = "https://github.com/fafhrd91/actix-http.git" }
```
## Example
```rust
extern crate actix;
extern crate actix_http;
extern crate futures;
use std::net;
use std::str::FromStr;
use actix::prelude::*;
use actix_http::*;
// Route
struct MyRoute;
impl Actor for MyRoute {
type Context = HttpContext<Self>;
}
impl Route for MyRoute {
type State = ();
fn request(req: HttpRequest,
payload: Option<Payload>,
ctx: &mut HttpContext<Self>) -> HttpMessage<Self>
{
Self::http_reply(req, httpcodes::HTTPOk)
}
}
fn main() {
let system = System::new("test".to_owned());
// create routing map with `MyRoute` route
let mut routes = RoutingMap::default();
routes.add_resource("/")
.post::<MyRoute>();
// start http server
let http = HttpServer::new(routes);
http.serve::<()>(
&net::SocketAddr::from_str("127.0.0.1:8880").unwrap()).unwrap();
// stop system
Arbiter::handle().spawn_fn(|| {
Arbiter::system().send(msgs::SystemExit(0));
futures::future::ok(())
});
system.run();
println!("Done");
}
```