5 releases (stable)
Uses old Rust 2015
1.5.1 | Aug 28, 2018 |
---|---|
1.0.1 | Aug 26, 2018 |
0.1.0 | Aug 26, 2018 |
#14 in #println
13KB
163 lines
Jplaceholder
A Rust library for the JSON Placeholder API Documentation: https://docs.rs/jplaceholder/1.0.1/jplaceholder/
Table of Contents
Example:
extern crate jplaceholder;
use jplaceholder::Model;
use jplaceholder::Post;
match Post::find(2) {
Some(post) => println!("Title of the article {}: {}", post.id, post.title),
None => println!("Article not found!")
}
Installation
To install the library, you just have to put it into your Cargo.toml file:
jplaceholder = "1.0.1"
Then, require the library into your main file.
extern crate jplaceholder;
Usage
The model trait
The model trait provides usefull methods to interact with the resources.
Implementations
- Post
- User
fn find(id: i32) -> Option;
Finds a resource by its ID
Example:
use jplaceholder::Model;
use jplaceholder::Post;
match Post::find(2) {
Some(post) => println!("Title of the article {}: {}", post.id, post.title),
None => println!("Article not found!")
}
fn all(id: i32) -> Option;
Gets all of the resources
Example:
use jplaceholder::Model;
use jplaceholder::Post;
let posts: Vec<Post> = Post::all();
for post in posts {
println!("The title of the post {} is: {}", post.id, post.title)
}
fn create() -> Vec;
Creates a new resource
Example:
use jplaceholder::Model;
use jplaceholder::Post;
let post = Post{id: 5, title: String::from("Hey"), body: String::from("hehe"), user_id: 5};
Post::create(post);
Relationships
Relationships let you interact between models. Let's say that I get the first user like this:
use jplaceholder::Model;
use jplaceholder::User;
use jplaceholder::Post;
let user = match User::find(1) {
Some(u) => u,
None => panic!("user not found")
};
Now, if I want to get all of the articles posted by this user:
// .......
let posts: Vec<Post> = user.posts().expect("This user has posted no article");
println!("{} posted {} articles", user.name, posts.len());
And conversely, if I want to get the user that posted an article:
use jplaceholder::Model;
use jplaceholder::Post;
if let Some(post) = Post::find(1) {
match post.user() {
Some(user) => println!("{} has posted this article", user.name),
None => println!("Author not found")
}
}
Contribution guide
- Fork and Clone the repository
- Create your own branch
- Start Coding!
- Make a pull request when you're done :)
Dependencies
~15–24MB
~422K SLoC