5 releases
0.1.4 | Mar 23, 2021 |
---|---|
0.1.3 | Feb 10, 2021 |
0.1.2 | Oct 14, 2020 |
0.1.1 | Oct 14, 2020 |
0.1.0 | Oct 13, 2020 |
#408 in HTTP client
15KB
119 lines
Roy
A high-level library for consuming RESTful APIs.
Table of Contents
Documentation
Installation
Add this to your Cargo.toml
:
[dependencies]
roy = "0.1"
Usage
To use any of the methods on the roy::Client
struct, it has to be instantiated as follows:
// import into scope
use roy::Client;
// Instantiate `Client` with your API's base URL
let c = roy::Client::new("https://httpbin.org".to_string());
All of the examples below assume that the struct has already been instantiated.
Quick Start
roy
provides a high-level request
function that can be used to quickly make requests. To make a
GET
c.get("/get", false); // Make a GET request to your endpoint
or
c.request("/get", roy::RequestMethod::GET, None); // Make GET request using alternate `request` function
POST
c.post("/post", "{some: data}"); // Make a POST request to your endpoint
or
c.request("/post", roy::RequestMethod::POST, Some("{}")); // Make POST request using alternate `request` function
PATCH
c.patch("/patch", "{some: data}"); // Make a PATCH request to your endpoint
or
c.request("/patch", roy::RequestMethod::PATCH, Some("{}")); // Make PATCH request using alternate `request` function
PUT
c.put("/put", "{some: data}"); // Make a PUT request to your endpoint
or
c.request("/put", roy::RequestMethod::PUT, Some("{}")); // Make PUT request using alternate `request` function
DELETE
c.delete("/delete"); // Make a DELETE request to your endpoint
or
c.request("/delete", roy::RequestMethod::DELETE, None); // Make DELETE request using alternate `request` function
License
Roy is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT, and COPYRIGHT for details.
Behind the Name
This crate is named after Roy Fielding, who defined Representational State Transfer. According to Wikipedia:
Roy Fielding defined REST in his 2000 PhD dissertation "Architectural Styles and the Design of Network-based Software Architectures" at UC Irvine. He developed the REST architectural style in parallel with HTTP 1.1 of 1996–1999, based on the existing design of HTTP 1.0 of 1996.
Dependencies
~6–10MB
~210K SLoC