20个版本 (3个稳定版)
1.2.0 | 2024年2月26日 |
---|---|
1.1.0 | 2024年2月16日 |
1.0.0 | 2024年1月27日 |
0.4.0 | 2023年5月8日 |
0.1.10 | 2023年1月26日 |
在 HTTP客户端 中排名第50
每月下载量308次
145KB
3.5K SLoC
TReq
TReq是一个终端请求HTTP客户端。TReq是一个用户友好的命令行界面(CLI)HTTP客户端,旨在简单且完整,以便与API进行交互。可以通过简单的命令保存和编辑常用的请求,稍后再次运行它们。想象一下在终端中使用GUI工具进行HTTP请求的工作流程。
功能
- 针对API和REST定制:TReq针对与API、REST和JSON进行最小努力的工作进行了优化。
- 基于HTTPie:CLI界面完全基于HTTPie,并寻求实现和扩展其主要功能(HTTPie的超集)。
- 持久请求存储:使用简单的命令保存和编辑常用的请求,以便稍后再次运行。想象一下在终端中使用GUI工具进行HTTP请求的工作流程。
- 漂亮的输出:UX在CLI中很重要。
示例
基本请求
treq GET example.com/users/id?name=John
treq POST example.com
带有自定义头和json有效负载的POST请求
treq POST example.com X-API-Token:123 name=John food=pizza
使用--save-as
标志将请求提交并本地保存为"main-endpoint"
treq POST example.com name="John Doe" --save-as main-endpoint
使用run
命令执行保存的请求
treq run main-endpoint
添加更多数据后执行它
treq run main-endpoint email='[email protected]' job=dev
实际用法...
# Create a user and save the request for make it again later
treq POST api.com/user name=John job=dev friends:='["Bob", "Jane"]' birth-year:=1990 --save-as create-user
# Make the same request for create a user "Jane"
treq run create-user name=Jane birth-year:=2001
# Editing saved request
treq edit birth-year:=2002 --method PATCH
安装
Ubuntu / Debian
从最新版本页面下载最新的.deb
软件包。打开您的终端,导航到下载的.deb
文件所在的目录。使用以下命令安装TReq
sudo dpkg -i treq-x.x.x_amd64.deb
或者,您可以尝试
sudo apt install ./treq-x.x.x_amd64.deb
Arch / Manjaro
如果您正在使用Arch Linux,您可以使用yay等AUR助手从AUR安装TReq
yay -S treq-bin
Cargo
对于任何操作系统,安装TReq的最佳方式是使用cargo
。
使用rustup安装cargo,然后...
cargo install treq
Linux通用
TReq的二进制文件是静态链接的,没有依赖项,因此与大多数主流Linux发行版兼容。要安装,请从最新发布页面下载二进制文件,并将其放置在您的PATH目录中。
使用Curl
curl -fLo /usr/local/bin/treq --create-dirs https://github.com/talis-fb/TReq/releases/latest/download/treq.bin
chmod +x /usr/local/bin/treq
使用wget
wget -O /usr/local/bin/treq https://github.com/talis-fb/TReq/releases/latest/download/treq.bin
chmod +x /usr/local/bin/treq
Windows
从最新发布页面下载最新的.exe
文件。将下载的.exe文件放置在包含在系统PATH中的目录中,或者将包含.exe的目录添加到您的PATH中。
用法
有关命令和选项的更多详细信息,请参阅内置的帮助。
treq --help
TReq使用HTTPie的请求项语法来设置头部、请求正文、查询字符串等。
=/:=
用于设置请求正文的JSON或表单字段(=用于字符串,:=用于其他JSON类型)。==
用于添加查询字符串。:
用于添加或删除头部,例如connection:keep-alive或connection:
正文、头部和参数操作
# POST with JSON payload => { "language": "Rust", "food": "pizza" }
treq POST example.com language=Rust food=pizza
# POST with custom Header => { Content-Type: application/json }
treq POST example.com Content-Type:application/json
# Define query params at url
# (these two below are equivalent)
treq example.com?name=John&job=dev
treq example.com name==John job==dev
更复杂的需求
# POST with JSON payload
# => {
# "friends": ["John", "Jane"],
# "job": "dev",
# food": "pizza"
# }
# (these three below are equivalent)
treq POST example.com?sort=true --raw '{ "friends": ["John", "Jane"] }' job=dev food=pizza
treq POST example.com?sort=true --raw friends:='["John", "Jane"]' job=dev food=pizza
treq POST example.com sort==true --raw friends:='["John", "Jane"]' job=dev food=pizza
本地主机别名
当定义包含localhost的URL时,可以使用别名:{PORT}/{ROUTES}
来代替完整的URL。
例如,下面命令的每对都是等价的...
treq GET localhost:8000
treq GET :8000
treq GET localhost:80/users
treq GET :80/users
treq run my-request --url localhost:9000
treq run my-request --url :9000
贡献
欢迎贡献和功能请求!请随意在我们的GitHub仓库提交问题或拉取请求。
即将推出的功能
- 类似于https://github.com/talis-fb/legacy_treq的TUI视图
- 请求负载中的环境变量(如{{ .env.ENV_NAME }})
依赖项
~15–29MB
~484K SLoC