RESTer HTTP 客户端
Sublime Text 2 和 3 的 REST 客户端
详细信息
安装
- 总数 10K
- Win 5K
- Mac 3K
- Linux 2K
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 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 3 | 1 | 0 | 0 | 1 |
README
RESTer
Sublime Text 的 HTTP 客户端
RESTer 允许你在 Sublime Text 中构建 HTTP 请求,并在新标签页中查看响应。
使用
请求可以只是一个 URI
http://api.my-example-site.com
或者,你可以发送头部信息和正文
PUT /my-endpoint HTTP/1.1
Host: api.my-example-site.com
Accept: text/plain
Accept-Charset: utf-8
X-custom-header: whatever you want
Here is the payload for the PUT request. Just add an empty line after the headers.
一旦你已经准备好请求,使用快捷键 Ctrl + Alt + r
或打开命令面板(Shift + Command + P
)并输入 RESTer HTTP 请求
。
安装
Sublime Package Control
你可以使用 Sublime Text 的优秀 包控制 包管理器来安装 RESTer
- 从命令面板(
Shift + Command + P
)打开“包控制:安装包”。 - 选择“RESTer”选项以安装 RESTer。
Git 安装
要安装,请将克隆到您的“套件”目录。
git clone https://github.com/pjdietz/rester-sublime-http-client.git "RESTer HTTP Client"
注意 RESTer 期望安装到名为“RESTer HTTP Client”的目录中。如果安装在其他地方,某些功能(如打开设置的菜单命令)将无法正常工作。
发送请求
请求行
选择的第一非空行(如果没有选择则为文档的非空第一行)是“请求行”。RESTer 解析此行以确定方法、URI 和协议。
你可以在请求行中包含主机名,但 RESTer 不是必需的。如果省略,请确保包括表示主机名的 Host
头部。
以下是示例请求行
GET /my-endpoint HTTP/1.1
Host: api.my-example-site.com
GET http://api.my-example-site.com/my-endpoint
http://api.my-example-site.com/my-endpoint
api.my-example-site.com/my-endpoint
因为 GET 是默认方法,因此它们会产生相同的效果。
头部
RESTer 解析紧随第一个非空行之后的行,直到第一个空行为标题。使用标准的 字段名: 字段值
格式。
查询参数
对于带有许多查询参数的请求,您可能希望将请求分散到多行。RESTer 会解析首字母为 ?
或 &
的头部区域的任意行,将其视为查询参数。您可以使用 =
或 :
来分隔键和值。
以下示例请求是等效的
都在 URI “ http://api.my-example-site.com/?cat=molly&dog=bear” 中
With new lines
http://api.my-example-site.com/ ?cat=molly &dog=bear
Indented, using colons, and only using ?
http://api.my-example-site.com/ ? cat: molly ? dog: bear
#### Percent Encoding
One thing to note is that RESTer assumes that anything you place directly in the request line is the way you want it, but query parameters added on individual lines are assumed to be in plain text. So, values of query parameters added on individual lines are percent encoded.
These requests are equivalent:
http://api.my-example-site.com/?item=I%20like%20spaces
http://api.my-example-site.com/ ? item: I like spaces
### Body
To supply a message body for POST and PUT requests, add an empty line after the last header. RESTer will treat all content that follows the blank line as the request body.
Here's an example of adding a new cat representation by supplying JSON:
POST http://api.my-example-site.com/cats/
{ "name”: “Molly”, “color”: “Calico”, “nickname”: “Mrs. Puff” }
#### Form Encoding
For `application/x-www-form-urlencoded` requests, you can use the `auto_form_encode` command (part of RESTer) to automatically encode a body of key-value pairs. To use this functionality, make sure that `auto_form_encode` is enabled as a [`request_command`](#request-commands) and include a `Content-type: application/x-www-form-urlencoded` header.
The key-value pairs must be on separate lines. You may use `=` or `:` to separate the key from the value. As with query parameters, whitespace around the key and value is ignored.
Example:
POST http://api.my-example-site.com/cats/ Content-type: application/x-www-form-urlencoded
name=Molly color=Calico nickname=Mrs. Puff
Colons and whitespace
POST http://api.my-example-site.com/cats/ Content-type: application/x-www-form-urlencoded
name: Molly
color: Calico
nickname: Mrs. Puff
##### Multiline Values
Use delimiters to mark the boundaries of multiline field values. By default, the delimiters are `"""` to mimic a triple-quoted Python string. You may customize this by providing values for the `form_field_start` and `form_field_end` settings.
Here's an example of a request using mixed single- and multiline fields.
POST http://api.my-example-site.com/cats/ Content-type: application/x-www-form-urlencoded
name: Molly color: Calico nickname: Mrs. Puff extra: “”“{ "id”: 2, “description”: “This JSON snippet is wrapped in delimiters because it has multiple lines.” }“”“
### Comments
You may include comments in your request by adding lines in the headers section that begin with `#`. RESTer will ignore these lines.
GET /my-endpoint HTTP/1.1 Host: /api.my-example-site.com
这是一个注释。
Cache-control: no-cache
## Settings
RESTer has some other features that you can customize through settings. To customize, add the desired key to the user settings file.
You may also provide configuration settings for the current request by adding lines to the headers section that begin with `@`.
The format of the line is `@{name}: {value}` where `{name}` is the key for a setting and `{value}` is the value. The value is parsed as a chunk of JSON.
GET /my-endpoint HTTP/1.1 Host: /api.my-example-site.com @timeout: 2 @default_response_encodings: ["utf-8”, “ISO-8859-1”, “ascii”]
### Displaying the Response and Request
By default, RESTer outputs the request and response to the console and opens a new buffer where it writes the full contents of the response. This view is created in the same group as the request view. You can change this behavior by tweaking several settings.
Setting | Default | Description
----------------------- | ------- | -----------
output_request | `true` | Write the request to the console.
output_response_headers | `true` | Write the status line and headers to the console.
output_response_body | `true` | Write the body of response to the console. **Note**: because [response commands](#response-commands) must by run in a buffer, the body is not processed.
response_buffer | `true` | Open a new buffer, write the response, and run any number of [response commands](#response-commands) on the response body.
response_group | `null` | Set to the integer index of the group the response should appear in. `1` is the typical choice for a two-column presentation.
response_group_clean | `false` | If indicating a specific response_group, close all other views in that group on each response.
request_focus | `false` | Return focus to the request view after displaying the response.
body_only | `false` | When writing the response to the buffer, do not include headers.
#### Side-by-Side Mode
If you'd like to author your request in one panel and view your response in a second, use this configuration:
```json
{
"response_group": 1,
"response_group_clean": true,
"request_focus": true
}
协议
版本 1.3.0 及以上,RESTer 支持发送 HTTP 和 HTTPS 请求。要使用 HTTPS,您可以在请求行中包含该协议。您也可以在设置中设置默认协议。
{
"protocol": "https"
}
您还可以使用覆盖来设置协议。以下请求是等效的
GET https://api.my-secure-example-site.com/my-endpoint
GET /my-endpoint
Host: api.my-secure-example-site.com
@protocol:https
注意 Linux 用户:Linux 上的 Sublime Text Python 解释器没有 SSL 支持。要发送 HTTPS 请求,您需要将 RESTer 设置更改为使用 cURL。
主机
RESTer 将连接到 Host 标题或请求行中找到的主机。但是,您可能想要与特定 IP 地址上的服务器通信。要这样做,请使用 @host
设置。
GET /my-endpoint
Host: api.my-example-site.com
@host: 127.0.0.1
端口
RESTer 将假设 HTTP 和 HTTPS 分别是端口 80 和 443。如果您经常需要特定的自定义端口,您可以用 @port
设置来设置它。
默认头部
要将一组头部包含在每个请求中,请将它们添加到 "default_headers"
设置。这是一个以头部名称作为键的字典。
{
"default_headers": {
"Accept-Encoding": "gzip, deflate",
"Cache-control": "no-cache"
}
}
默认响应编码
RESTer 可以尝试判断响应的编码。这并不总是有效,因此给它一些尝试的编码是个好主意。通过为 "default_response_encodings"
设置提供一个编码列表来实现这一点。
{
"default_response_encodings": ["utf-8", "ISO-8859-1", "ascii"]
}
响应命令
在 RESTer 将响应写入新标签后,它会选择响应正文。正文被选中时,它可以在文本上执行一系列操作。例如,您可以指示 RESTer 美化打印 JSON 响应。
要为 RESTer 在响应上运行的命令指定命令,请向设置的 response_commands
成员添加条目。对于 response_commands
的值,必须是一系列命令的字符串名称列表。
{
"response_commands": ["pretty_json"]
}
如果您没有安装 PrettyJson 包,不会发生任何坏事。您不会收到任何错误,但您也不会得到任何美化打印的 JSON。
如果您不确定给定功能的命令是什么,您可能可以从命令历史记录中读取其名称。像往常一样运行命令,然后打开 Python 控制台(Ctrl
+ `
),输入 view.command_history(0)
。您应该看到对当前视图运行的最后一个命令。
>>> view.command_history(0)
('insert', {'characters': '\n\n'}, 1)
响应语法
首先找到语法文件的名称。要查看当前语法,请使用 Python 控制台
>>> view.settings().get("syntax")
'Packages/HTTP Spec Syntax/httpspec.tmLanguage'
使用捆绑的 set_syntax
命令来设置任何新响应的语法到您选择的语法文件。这里我们使用“Packages/HTTP Spec Syntax/httpspec.tmLanguage”,这是一个HTTP消息的语法,它是httpspec/sublime-highlighting包的一部分。
{
"response_commands": [
{
"name": "set_syntax",
"args": {
"syntax_file": "Packages/HTTP Spec Syntax/httpspec.tmLanguage"
}
}
]
}
请注意,此命令需要 syntax_file
参数。请参阅下文的带参数的请求和响应命令,了解更多关于运行带有参数的命令的信息。
请求命令
RESTer可以在解析请求文本之前对文本进行操作。这些命令在请求完成后会被撤销,因此您的文件永远不会被修改。与响应命令一样,您将通过在设置文件中添加一个列表条目来指定这些命令。这次,设置名称是 request_commands
。
{
"request_commands": ["merge_variables"]
}
可以使用一个有用的请求命令是来自我的Merge Variables包的 merge_variables
。使用Merge Variables,您可以使用在您发出请求之前不展开的占位符变量编写请求。Merge Variables还允许您指定多个配置,因此您可以构建一个请求,然后将其与各种配置合并。例如,您可以从以下请求开始
GET http://{{API}}/my-endpoint
对于开发配置,这可以展开为
GET http://dev.my-example-site.com/my-endpoint
而对于生产配置
GET http://api.my-example-site.com/my-endpoint
更多信息请参阅Merge Variables。
带参数的请求和响应命令
大多数情况下,您只需要提供命令的名称。一些命令可以接受参数,并且您可以通过提供一个对象而不是字符串来传递这些参数。要使用对象格式,确保包含命令名称作为name
成员,以及任何参数作为args
成员。
{
"name": "merge_variables",
"args": {
"active_sets": ["mysite", "mysite-dev"]
}
}
重定向
RESTer将自动遵循重定向。要禁用此功能或限制将触发自动重定向的响应代码,请修改以下设置(默认值)
{
"follow_redirects": true,
"follow_redirect_status_codes": [300, 301, 302, 303, 307]
}
cURL
如果您已经安装了 cURL,您可以将RESTer设置为使用cURL而不是Python http.client
库。大多数用户不需要这样做,但这对于无法因为Python未编译SSL支持而进行HTTPS请求的Linux用户可能会有所帮助。或者,如果您熟悉在命令行上使用cURL,您可能会发现向cURL命令添加自定义参数很有用。
有三个与cURL相关的设置。第一个是http_client
,它告诉RESTer要使用哪个客户端(允许的值是python
,对于原生Python连接器或curl
,对于cURL)。
下一个是curl_command
,这是cURL可执行文件的路径。在OSX和Linux上,如果curl
在您的路径中,您不需要更改此设置。在Windows上提供完整路径到curl.exe
的用户需要使用斜杠在路径中使用(例如,C:/curl/curl.exe
)。
最后一个设置是curl_options
,它是传递给curl
的可选参数列表。每个选项必须是一个单独的字符串,因此要发送自定义头,请使用["--header", "X-custom-header: header-value"]
,而不是"--header X-custom-header: header-value"
。以下是一个显示这三个设置示例
{
"http_client": "curl",
"curl_command": "C:/curl/curl.exe",
"curl_options": ["--header", "X-custom-header: header-value"]
}
有关cURL的更多信息,请参阅cURL man page
作者
PJ Dietz
版权和许可证
版权所有2013 PJ Dietz