resty

Crates.ioresty
lib.rsresty
version0.1.0
sourcesrc
created_at2017-09-11 23:42:29.180427
updated_at2017-09-11 23:42:29.180427
descriptionA simple JSON REST-API framework.
homepagehttps://github.com/tomusdrw/resty
repositoryhttps://github.com/tomusdrw/resty
max_upload_size
id31448
size42,730
Tomasz Drwięga (tomusdrw)

documentation

https://docs.rs/resty

README

Resty

Resty - a simple JSON REST-API framework for Rust.

Build Status

Documentation

Examples

extern crate futures;
extern crate resty;
#[macro_use]
extern crate serde_derive;

use futures::Future;

#[derive(Deserialize, Serialize)]
struct Call {
    pub test: u64,
}

fn main() {
    let mut server = resty::Router::new();
    server.get("/", |_| {
        Ok("Hello World!")
    });
    server.post("/call", |request| {
        // Deserialize payload
        request.json().map(|mut call: Call| {
            call.test += 1;
            // And return the same payload as a response
            call
        })
    });

    let listening = server.bind("localhost:3000").unwrap();
    listening.wait()
}

For more see examples folder.

TODO

General

  • get_*() for dynamic params.
  • Auto handle HEAD requests.
  • CORS support
  • Middlewares
  • Cache Control
  • Auto-derive Into<Router> for structs.
  • Query parameters
  • Optional parameters
  • Parameters with /
Commit count: 17

cargo fmt