#restful #rest #http #rest-api #http-api #api

roy

This crate is a high-level library for consuming RESTful APIs

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

#392 in HTTP client

MIT/Apache

15KB
119 lines

Roy

A high-level library for consuming RESTful APIs.

Build Status Build status Crate API Crates.io GitHub top language Crates.io

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
~221K SLoC