12 个版本
| 0.1.0-alpha.12 | 2023年3月24日 |
|---|---|
| 0.1.0-alpha.11 | 2023年3月16日 |
| 0.1.0-alpha.5 | 2023年2月28日 |
| 0.1.0-alpha.4 | 2023年1月17日 |
| 0.1.0-alpha.2 | 2022年8月16日 |
10 在 #bookmark
每月 68 次下载
90KB
2.5K SLoC
一个具有占位符、书签和环境功能的 curl 包装器,就像 postman 一样,但适用于终端
功能
- 从
.env和.yaml环境文件中获取变量 - 使用 minijinja 模板引擎进行占位符评估,可用于 URL、HTTP 头部、HTTP 主体和其他传递给 curl 的参数
- 可以保存并执行带有短名的请求作为书签
- 支持任何在
--之后出现的 curl 参数,可以作为 curl 的直接替代品 - 特殊的占位符用于与用户交互
- 提示输入密码,如下所示
{{ prompt_password() }}curlz r https://api.github.com/user -- -u "{{ username }}:{{ prompt_password() }}" - 提示输入带标签的交互式输入,如下所示
{{ prompt_for("Username") }}或{{ prompt_for("Birthdate") }}curlz -- -u "{{ prompt_for("Username") }}:{{ prompt_password() }}" https://api.github.com/user
- 提示输入密码,如下所示
- ️评估URL开头占位符,例如:
curlz r --define 'host=https://httpbin.org' '{{host}}/get' - ️为开发者提供的特殊占位符,例如用于Json Web Tokens (JWT):
{{ jwt(claims, jwt_signing_key) }},其中claims和jwt_signing_key可以在环境文件中查找,或者可以直接提供映射和字符串curlz r -H 'Authorization: Bearer {{ jwt({"uid": "1234"}, "000") }}' https://httpbin.org/bearer -- -vvv - 通过
-d | --data发送HTTP正文curlz r -d 'Hello World' -X POST https://httpbin.org/anything - 使用
--json参数发送JSON正文和头信息curlz r --json '{ "foo": "bar" }' -X POST 'https://httpbin.org/anything'
WIP
- 支持REST客户端模板语言 参见 #5
示例 #1
在这个示例中,我们将通过curl从GitHub下载给定语言的预配置.gitignore
curlhttps://api.github.com/gitignore/templates/Rust- 使用curlz的相同方法:
curlz r https://api.github.com/gitignore/templates/Rust - 添加一个交互式请求的占位符
curlz r https://api.github.com/gitignore/templates/{{ prompt_for("Language") | title }}' - 现在让我们将这个请求添加到书签
curlz r --bookmark 'https://api.github.com/gitignore/templates/{{ prompt_for("Language") | title }}' Language: rust Please enter a bookmark name: gitignore - 最后,我们可以从现在开始继续使用书签:
curlz r gitignore
模板函数文档
Json Web Token - jwt(claims: map, [jwt_signing_key: string])
- 参数
claims:它是一个键值对映射,例如{"uid": "1234"},这是JWT的有效载荷jwt_signing_key:它是一个字符串,这是可选的,可以在环境文件中提供名为jwt_signing_key的变量
- 输出:字符串是Json Web Token (JWT)
- 注意事项
- 哈希算法是
HS256,JWT头是{"alg": "HS256", "typ": "JWT"} - 默认情况下,声明
exp的过期时间设置为15分钟,但可以被覆盖 - 声明
iat的发行时间戳是自动设置的,不能被覆盖
- 哈希算法是
依赖项
~15–27MB
~477K SLoC