REST 客户端
Sublime Text 4 的 REST 客户端
详细信息
安装
- 总计 2K
- Win 750
- Mac 383
- Linux 400
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | 6月22日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 1 | 2 | 1 | 2 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 4 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Mac | 2 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 3 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 2 | 3 |
Linux | 0 | 0 | 0 | 0 | 2 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 1 | 0 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 1 |
读我
Sublime REST Client
Sublime REST Client 是一个受 VSCode 中出色的 REST Client 扩展 启发的 Sublime Text 4 HTTP 客户端插件。
Sublime REST Client 提供了优秀的 urllib3,并使用与 Sublime Text 4 打包的 certifi,以确保安全的 HTTP 请求。
该项目被认为是 ALPHA 版本,并且只在 Mac OS X 中进行了测试。
安装
- 从 Sublime Text 4 中,如果您还没有安装,请安装 Package Control。
- 从命令面板运行
Package Control: Install Package
。 - 输入
REST
,您应该会在列表中看到REST Client
,选择它进行安装。
快捷键
目前只有一个命令 REST: Send request
。
Sublime REST Client 未提供默认快捷键,您可以通过打开 首选项: 键盘快捷键
并将其添加到快捷键列表中来自行添加。
{
"keys": ["ctrl+alt+r"],
"command": "rest_request"
}
更改 keys
为您想要的任何组合。
使用方法
Sublime REST Client 提供与 REST Client 相同的简单、声明性方式来定义 HTTP 请求。就像这样简单
https://httpbin.org/get
调用“REST: Send request”将请求发送到 URL,并将响应写入另一个标签页
GET https://httpbin.org/get 200 OK
Date: Sun, 20 Mar 2022 17:27:11 GMT
Content-Type: application/json
Content-Length: 308
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
{
"args": {},
"headers": {
"Accept-Encoding": "identity",
"Content-Length": "59",
"Host": "httpbin.org",
"User-Agent": "python-urllib3/1.26.5",
"X-Amzn-Trace-Id": "Root=1-623763ef-5339120230225c282d6687b2"
},
"origin": "109.181.57.85",
"url": "https://httpbin.org/get"
}
查询参数
查询参数可以在请求定义的第一行中按通常方式添加
GET https://httpbin.org/get?hello=world
或者在下方的带有缩进的行中添加
GET https://httpbin.org/get
?hello=world
&client=sublime
请求头
请求定义可能包括 HTTP 方法和请求头
GET https://httpbin.org/get
user-agent: sublime rest client
这将生成
GET https://httpbin.org/get 200 OK
Date: Sun, 20 Mar 2022 17:35:23 GMT
Content-Type: application/json
Content-Length: 277
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
{
"args": {},
"headers": {
"Accept-Encoding": "identity",
"Host": "httpbin.org",
"User-Agent": "sublime rest client",
"X-Amzn-Trace-Id": "Root=1-623765db-0ff407a42748a89733c96bbb"
},
"origin": "109.181.57.85",
"url": "https://httpbin.org/get"
}
请求还可以包含一个有效负载
POST https://httpbin.org/post
content-type: application/json
{
"hello": "world!"
}
以及其响应
POST https://httpbin.org/post 200 OK
Date: Sun, 20 Mar 2022 17:34:14 GMT
Content-Type: application/json
Content-Length: 465
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
{
"args": {},
"data": "{\n \"hello\": \"world!\"\n}",
"files": {},
"form": {},
"headers": {
"Accept-Encoding": "identity",
"Content-Length": "23",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "python-urllib3/1.26.5",
"X-Amzn-Trace-Id": "Root=1-62376596-3d6be5d11f9dd27b26e7a27e"
},
"json": {
"hello": "world!"
},
"origin": "109.181.57.85",
"url": "https://httpbin.org/post"
}
多个请求文件
单个 .rest
文件可以包含多个请求定义,但它们必须由以 ###
开头的行分隔,例如:
GET https://httpbin.org/get
user-agent: sublime rest client
### maybe some description
POST https://httpbin.org/post
content-type: application/json
{
"hello": "world!"
}
当调用“发送请求”时,Sublime REST 客户端将检测光标当前位置的请求定义并发送它。
变量替换
通常需要定义多个请求以使用相同的信息,例如,必须在所有请求中发送的 JWT 令牌。为了避免在所有定义中重复令牌,可以使用 @name = value
定义变量,并在请求定义中使用 {{name}}
引用。
@token = ABC123
GET https://httpbin.org/get
Authorization: Bearer {{token}}
开发
- 通过在
$HOME/Library/Application Support/Sublime Text 3/Packages
中创建指向此仓库根目录的符号链接来安装插件。路径还可以是$HOME/Library/Application Support/Sublime Text/Packages
。
ln -s `pwd` ~/Library/Application\ Support/Sublime\ Text/Packages
- 运行
REST: 发送请求
命令,或通过控制台window.run_command("rest_request")
运行。
要开始开发
- 安装 ST4 内嵌的 3.8.8 版本 Python,或者安装最接近兼容的版本 3.8.13。
- 创建虚拟环境并激活它。
- 注意:如果您使用 pyenv,请注意它依赖于一个
.python-version
文件,Sublime Text 也使用该文件但内容不同,这会导致它完全忽略插件。一种解决方法是在.pyenv/versions
中创建一个带有3.8
名称的符号链接。
- 注意:如果您使用 pyenv,请注意它依赖于一个
运行
make install-dev
。- 安装
direnv
并运行direnv allow
以将包添加到PYTHONPATH
。这是包装sublime_rest
的一个解决方案,因为插件根目录只能有一个 Python 文件。
要更新 urllib3
的版本,编辑 main.txt
并运行 make upgrade-deps
。
替代方案
RESTer HTTP Client 与 REST Client 有相同的理念,但它的开发似乎已经停止了几年,因此不针对 Sublime Text 4。它的代码还使用标准库在大多数 HTTP 请求上执行重任务,这看起来是不必要的,而且在存在 urllib3
时可能是一个安全风险。
还有 其他用于 Sublime Text 的 HTTP 客户端,其中许多维护得更好,功能更丰富,但它们不遵循 REST Client 一样的简单、声明性哲学。