11 个版本
使用旧 Rust 2015
0.4.12 | 2018年5月18日 |
---|---|
0.4.11 | 2018年5月18日 |
0.4.9 | 2017年11月24日 |
0.4.7 | 2017年10月28日 |
0.4.1 | 2017年3月30日 |
#1369 in Web programming
33 每月下载次数
130KB
3K SLoC
RAT - Rest Api 工具
Rat 是一个简单的命令行工具,帮助我自动化我喜欢的提供 REST API 的 Web 服务和软件产品的重复性任务。Rat 支持的所有命令的一般指南是它们应该只做一件事,最好只通过一个 HTTP 请求。这个指南遵循 UNIX 原则,即工具应该只做一件事,通过管道来实现复杂的行为。
目录
可用客户端
CenterDevice
rat centerdevice auth
rat centerdevice collections
rat centerdevice delete
rat centerdevice download
rat centerdevice refresh_token
rat centerdevice search
rat centerdevice status
rat centerdevice upload
rat pocket auth
rat pocket list
rat pocket archive
rat pocket readd
rat pocket favorite
rat pocket unfavorite
rat pocket delete
Slack
rat slack auth
股票
rat stocks
安装
macOS
请使用 Homebrew 在您的系统上安装 rat。
brew install lukaspustina/os/rat
Ubuntu
请添加我的 [PackageCloud] 开源存储库,并通过 apt 安装 rat。
curl -s https://packagecloud.io/install/repositories/lukaspustina/opensource/script.deb.sh | sudo bash
sudo apt-get install rat
Windows
rat 通过 AppVeyor 在 Windows 上自动构建,以确保编译和运行良好,但当前不提供二进制文件。请从源代码编译。
从源代码
请通过 rustup 安装 Rust,然后运行
cargo install rat
用法
通用
有两种响应输出模式,即 JSON 和 HUMAN,以及三种消息级别,即 QUIET、NORMAL 和 VERBOSE。
在 HUMAN 输出模式下,尝试给出接收信息的简洁表示。在 json 输出模式下,rat 尝试将整个 json 响应传递给用户(如果有)。输出模式可以通过参数 --output <humen|json>
选择,例如 rat --output json ...
消息输出级别配置了在执行期间老鼠的嘈杂程度。静音级别仅将输出减少到实际响应,而正常级别则试图在请求的开始和结束时给用户一些反馈。详细级别更进一步,试图通知用户每个处理的步骤。可以通过参数--quiet
或--verbose
选择消息级别。如果没有激活这些开关中的任何一个,则消息级别设置为正常。例如,rat --verbose ...
选择详细消息级别。
CenterDevice
认证 rat
rat centerdevice auth
并遵循指示。
刷新访问令牌
rat centerdevice refresh_token
搜索集合
-
显示我的收藏夹:
rat centerdevice collections
-
显示我的以及公共收藏夹:
rat centerdevice collections --public-collections
-
搜索收藏夹:
rat centerdevice collections <搜索过滤器>
-
为其他命令缓存收藏夹名称:
rat centerdevice collections --cache
下载文档
-
使用原始文件名将文档下载到当前目录:
rat centerdevice download excbd68a-c397-id46-9350-a4fd4022fe8c
-
使用新文件名下载文档:
rat centerdevice download excbd68a-c397-id46-9350-a4fd4022fe8c -f new_filename
搜索文档
-
搜索具有文件名README.md、标记为文档以及一些全文的文档:
rat centerdevice search -f README.md -t documentation -t rat "the Rest Api Tool"
-
再次搜索,但现在使用
jq
后处理JSON响应:rat --output json --quiet centerdevice search -f README.md -t documentation "the Rest Api Tool" | jq .
-
将搜索扩展到公共收藏夹:
... --public-collections
上传文档
-
使用标签上传文档:
rat centerdevice upload README.md --t documentation --t rat
-
将文档上传到收藏夹:
rat centerdevice upload README.md --collection <收藏夹 ID>
-
使用收藏夹缓存上传文档到收藏夹:
rat centerdevice upload README.md --Collection <缓存收藏夹名称>
删除文档
rat centerdevice delete excbd68a-c397-id46-9350-a4fd4022fe8c
认证
创建消费者密钥
创建一个新的应用,并将新创建的消费者密钥添加到您的rat配置文件中的[pocket]部分,格式如下:consumer_key = '<消费者密钥'
。
认证 rat
rat pocket auth
,并按照指示操作。
存档 | 重新添加 | 收藏 | 取消收藏 | 删除
rat pocket archive|readd|favorite|unfavorite|delete<文章ID>...
列表和搜索
在所有文章的标题和URL中搜索...
- 关键词rust:
rat pocket list rust
列出所有...
-
未读文章:
rat pocket list
-
存档文章:
rat pocket list --state archived
-
文章:
rat pocket list --state all
-
带有Rust标签的未读文章:
rat pocket list --tag Rust
-
2周至1周内添加的未读文章:
rat pocket list --since 2w --until 1w
-
列出所有2周或更早前添加的未读文章ID,创建一个逗号分隔的列表:
rat pocket list --until 2w --output id | paste -s -d . -
高级列表
-
列出所有包含视频的未读文章:
rat --output json --quiet pocket list | jq '.list | .[] | select(.has_video | test("1") ) | { id: .item_id, title: .resolved_title }'
-
筛选标题和URL中包含Rust的文章,并创建以逗号分隔的id列表:
rat -o json --quiet pocket list | jq -r '.list | .[] | { title: .given_title, id: .item_id, url: .given_url } | select((.title | test("Rust")) or (.url | test("Rust"))) | .id' | paste -s -d , -
Slack
认证
创建客户端 ID 和客户端密钥
创建一个新的应用,并将新创建的Client ID
和Client Secret
添加到您的rat配置文件中[slack]部分,分别作为client_id = '<client id>'
和client_secret = '<client secret'
。
认证 rat
rat slack auth
并遵循指示。
股票
从 comdirect 网页抓取当前股票价格
-
按公司名称:
rat stocks "Comdirect"
-
按WKN:
rat stocks 542800"
即将推出的客户端
rat feedly
rat elasticsearch browse
rat elasticsearch status -- curl -s http://<host>:9200/_cluster/health?level=shards
rat elasticsearch health -- curl -s http://<host>:9200/_cluster/health
rat slack channel list
rat slack user list
rat slack send <channel|user> <message>
rat bosun browse
rat bosun incidents show --open
rat bosun incidents ack|close --ids <id>,<id> --message "Just because ..."
rat bosun show-silences
rat bosun silence show
rat bosun silence set
待办事项
-
鼓掌
- bash和zsh自动完成
-
填写Cargo.toml
-
错误链
-
分发
-
Brew
-
Debian
-
-
完成Pocket
-
输出
-
通用选项
-
颜色:常规(黑色)、信息(蓝色)、警告(黄色)、错误(红色)
-
向模块添加信息消息
-
静音选项
-
添加输出格式参数
-
将输出格式应用于所有输出
-
-
Slack认证
-
CenterDevice认证
-
CenterDevice上传
- 使用流
-
使用包含我的补丁的checkout mime_multipart 0.5
-
将centerdevice browse-status移动到status --browse
-
通过--browser增强认证,该选项会打开浏览器窗口
-
增强Pocket
-
为搜索添加--since和--until参数
-
选择人类输出字段:id、标题、url
-
更新文档
-
-
重构认证模块 - 参见分支
-
Slack:将HTTP调用移动到客户端模块
-
用hyper替换curl
-
Pocket:将HTTP调用移动到客户端模块
-
用可选搜索词的搜索替换Pocket列表和搜索
-
Travis
-
packagecloud.io
-
在Cargo.toml和Readme中添加Travis徽章
-
-
等待新的select版本发布,然后让Travis发布到crates.io
-
CenterDevice
-
重构客户端库
-
搜索集合
-
上传到集合
-
命名集合
-
上传到命名集合
-
删除文档
-
令牌刷新/令牌过期时的错误消息
-
-
在适当的位置使用弹性制表符输出
- 使用pocket list -- 但不是在所有地方
-
测试
-
通过使用Foreign errors更好地使用error_chain
-
通过使用Foreign errors
-
通过使用 ensure!
-
-
Dockerize 运行,以获得更好的回溯
docker run -v $PWD:/volume -w /volume -t clux/muslrust:nightly sh -c "cargo run"
-
在 cargo nightly 工作正常后运行 Clippy 一次 -- cf. http://asquera.de/blog/2017-03-03/setting-up-a-rust-devenv/
-
迁移到基于未来的客户端 -- cf. http://asquera.de/blog/2017-03-01/the-future-with-futures/
– 在第一个 1.0 版本发布之前
-
文档
- 将文档生成添加到 .travis
-
清理 Readme;尤其是待办事项
参考资料
Rust
Crates
-
测试
#[test] fn make_sure_foo_works() { setup(|&fixture_state| { ... }); }
致谢
- Rat 图标由 Eduardo Gonçalves Costa 拥有版权,受 CC BY 3.0 US 许可
依赖关系
~22–32MB
~524K SLoC