2 unstable releases
Uses old Rust 2015
0.2.0 | Nov 11, 2015 |
---|---|
0.1.0 | Nov 11, 2015 |
#42 in #json-response
7KB
87 lines
json-request
Rust library for talking to JSON HTTP servers
Usage
One method, request
, is exposed which makes HTTP requests and provides
automatic serialization/deserialization of Rust types to JSON.
extern crate rustc_serialize;
extern crate json_request;
use json_request::{request, Method};
#[derive(Debug, RustcEncodable)]
struct RequestData {
ping: bool
}
#[derive(Debug, RustcDecodable)]
struct ResponseData {
pong: bool
}
// `data` is the object to be serialized and sent to the HTTP server
let data = RequestData { ping: true };
// Actually build the request
let res = request(Method::Post, "http://example.com/", Some(data));
// Request returns a Result<Option<D>>; hence, two unwrap calls. The wrapped
// value has been deserialized from a JSON response.
let pong: ResponseData = res.unwrap().unwrap();
Install
Add the following to your Cargo.toml
[dependencies.json-request]
git = "https://github.com/jwilm/json-request"
Notes
- TODO: The
data
parameter should be url encoded and appended to the URL for GET requests. - TODO: Would be nice to have a DSL macro that's a little more user friendly
Dependencies
~3.5–9MB
~76K SLoC