2 个版本
0.1.1 | 2024 年 4 月 14 日 |
---|---|
0.1.0 | 2024 年 4 月 13 日 |
#217 in HTTP 客户端
48 次每月下载
62KB
1.5K SLoC
Rede
rede
(加利亚斯语中的“网络”)是一个命令行工具,可以帮助运行一系列请求,以简化 REST API 的使用和测试。这个项目的主要灵感来自 Bruno 和他们的命令行工具。
这个项目背后的主要目标是有一个代表 HTTP 请求的文本文件集合,这些请求将由 rede
捕获并执行,从而便于共享和控制这些请求的版本。
--verbose
选项看起来也很好
安装
由于这个项目仍处于早期阶段,安装它的唯一方法是使用 cargo,因此您需要安装 Rust 并运行
cargo install rede
如何运行
rede
使用 TOML 架构的 DSL。关于 rede DSL 的所有文档仍在开发中,但获取几个狗事实的请求如下所示
[http]
method = "GET"
url = "https://dogapi.dog/api/v2/facts"
[headers]
Accept = "application/json"
User-Agent = "rede/v0.1.0"
[query_params]
limit = 2
您可以通过执行 rede example
命令来生成此请求。然后,一旦您有了像示例生成的有效请求,只需使用 rede 运行它即可
rede run <your_file>
接下来是什么
rede
仍处于开发早期阶段。以下版本应该使其能够执行以下操作。
想象一下项目中的以下文件 ./request.toml
。
[http]
method = "POST"
url = "{{host}}/v1/movies"
[metadata]
name = "Add new movie"
api_version = "v1"
[input_params]
title = "string"
[input_params.release_date]
type = "string"
hint = 'Release date in format "YYYY-MM-DD"'
default = '{{utils.today("YYYY-MM-DD")}}'
[headers]
Content-Type = "application/json"
Authorization = "Bearer {{token}}"
body.json = '''
{
"title": {{title}},
"release_date": {{release_date}},
"debug": true
}
'''
并想象您还有一个 ./env/local.toml
文件如下所示
host = "https://127.0.0.1:8080"
token = "MyPersonalToken"
然后,您可以从项目运行 rede
,这将会发生
$ rede run --env local request
Running request "Add new movie"
Please, insert: `title` (string):
$ The Lion King
Please, insert: Release date in format "YYYY-MM-DD"
Send empty line to use default: "2024-02-29"
$ 1994-10-07
>> HTTP Request >>
POST localhost:8080/v1/movies
HTTP/2.0
- Content-Type: application/json
- Authorization: Bearer MyPersonalToken
[application/json]
{ "title": "The Lion King", "release_date": "1994-10-07", "debug": true }
<< HTTP Response <<
201 Created
HTTP/2.0
- Content-Type application/json
{ "id": 1, "title": "The Lion King", "release_date": "1994-10-07" }
这是 rede
的想法,创建可参数化和可重用的 TOML 格式请求,可以从命令行用于测试您的 API。但在此之前还有很长的路要走。
依赖关系
~13-25MB
~386K SLoC