#post #json-api #model #title #find #article #println

jplaceholder

JSON Placeholder API 的 Rust 库

5 个版本 (稳定版)

使用旧的 Rust 2015

1.5.1 2018 年 8 月 28 日
1.0.1 2018 年 8 月 26 日
0.1.0 2018 年 8 月 26 日

#11 in #println

MIT 许可证

13KB
163

Jplaceholder

Build Status

Jplaceholder API 的 Rust 库文档: https://docs.rs/jplaceholder/1.0.1/jplaceholder/

目录

示例

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!")
}

安装

要安装库,只需将其放入您的 Cargo.toml 文件中

jplaceholder = "1.0.1"

然后,在主文件中引入库。

extern crate jplaceholder;

使用

模型 trait

模型 trait 提供了与资源交互的有用方法。

实现

  • 帖子
  • 用户

fn find(id: i32) -> Option;

根据 ID 查找资源

示例

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;

获取所有资源

示例

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;

创建新资源

示例

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);

关系

关系允许在模型之间交互。比如说,我这样获取第一个用户:

use jplaceholder::Model;
use jplaceholder::User;
use jplaceholder::Post;

let user = match User::find(1) {
    Some(u) => u,
    None => panic!("user not found")
};

现在,如果我想获取这个用户发布的所有文章

// .......
let posts: Vec<Post> = user.posts().expect("This user has posted no article");
println!("{} posted {} articles", user.name, posts.len());

相反,如果我想获取发布文章的用户

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")
    }
}

贡献指南

  1. 分支和克隆存储库
  2. 创建您的分支
  3. 开始编码!
  4. 完成时提交一个 pull request :)

依赖项

~14–25MB
~426K SLoC