VS Code REST Client 代码片段整理
整理自 VS Code 的 HTTP Client(REST Client)扩展的用户代码片段(Snippets),按用途分类说明。
一、请求类型
GET 请求
| 前缀 | 用途 |
|---|
gtr | 基础 GET 请求,含请求头示例 |
gtrp | GET 请求带查询参数(如 ?id=99) |
gtr:GET {{host}}/api/,附带 Accept: application/json。
gtrp:GET {{host}}/api/?id=99,用于带查询参数的请求。
POST 请求
| 前缀 | 用途 |
|---|
ptr | POST JSON 请求 |
ptrp | POST 表单(application/x-www-form-urlencoded)请求 |
mptr | POST multipart/form-data(含普通字段) |
fptr | POST multipart/form-data(上传文件) |
ptr:POST {{host}}/api/,Content-Type: application/json,请求体为 JSON。
ptrp:POST {{host}}/api/,Content-Type: application/x-www-form-urlencoded,请求体为 key=value 键值对。
mptr:multipart/form-data,包含普通字段 field-name / field-value,用 boundary=WebAppBoundary 分隔。
fptr:multipart/form-data 上传本地文件,字段用 filename 声明,文件内容用 < ./relative/path 读取本地文件。
WebSocket
wsr:WebSocket 请求,支持连接时发送消息、等待服务器返回、随后继续交互的三段式流程。
GraphQL
gqlr:GraphQL 请求,支持 http/https/ws/wss 协议,含 query 语句、变量定义及变量值 JSON。
二、认证与授权
| 前缀 | 用途 |
|---|
auth | 定义一条 OAuth2 授权配置 |
authObj | 授权配置对象容器(Security > Auth) |
AuthorizationToken | 带 Bearer 令牌的请求头 |
BearerToken | Bearer 令牌变量引用 |
auth:配置一条 OAuth2 认证,字段包括 Type(OAuth2)、Grant Type(授权类型,可选 authorization_code/client_credentials/password/implicit)、Client ID、Client Secret、Token Endpoint。
authObj:外层包裹 "Security": { "Auth": {...} },用于把多条 auth 配置整合到 HTTP Client 的请求集合(.http 文件内嵌的 auth 对象)中。
AuthorizationToken:生成请求头 Authorization: Bearer {{auth_id.token}},把 OAuth2 令牌放入请求。
BearerToken:单独的 Bearer 令牌引用,Bearer {{auth_id.token}},用于其他需要令牌的场合。
具体用法(两步)
第一步:定义授权配置 —— 用 authObj 建容器,再用 auth 填充一条命名配置:
"Security": {
"Auth": {
"github": {
"Type": "OAuth2",
"Grant Type": "client_credentials",
"Client ID": "你的-client-id",
"Client Secret": "你的-client-secret",
"Token Endpoint": "https://github.com/login/oauth/access_token"
}
}
}
其中 github 是这条配置的名字(ID),后面要用它来引用 token。
第二步:在请求里引用令牌 —— 用 AuthorizationToken 生成请求头:
GET https://api.github.com/user
Authorization: Bearer {{github.token}}
###
{{github.token}}:github 对应第一步的配置名,.token 表示取该授权流程拿到的访问令牌。客户端会按 Grant Type 自动完成 OAuth2 流程换取 token 并注入请求头。
BearerToken(Bearer {{github.token}})与 AuthorizationToken 区别:前者只是 Bearer 令牌引用本身,当 token 要放进非 Authorization 的字段或请求体时用。
三、环境变量与配置
| 前缀 | 用途 |
|---|
var | 单个环境变量 |
env | HTTP Client 环境对象 |
ssl | SSL 配置 |
var:定义单个环境变量,"var_name": "var_value"。
env:定义环境(如 dev),其中包含一组变量,用于区分不同环境的 host、token 等。
ssl:SSL 配置,包含 clientCertificate(证书)、clientCertificateKey(私钥)、verifyHostCertificate(是否校验主机证书)、hasCertificatePassphrase(是否有证书密码)。
四、响应处理
| 前缀 | 用途 |
|---|
jsonPath | 用 JSONPath 过滤响应 |
xpath | 用 XPath 过滤响应 |
jsonPath:client.log(jsonPath(response.body, "$.path")),从响应 JSON 中按 JSONPath 取字段并打印。
xpath:client.log(xpath(response.body, "/path")),从响应(HTML/XML)中按 XPath 取节点并打印。
速查对照表
| 分类 | 前缀 |
|---|
| GET 请求 | gtr, gtrp |
| POST 请求 | ptr, ptrp, mptr, fptr |
| WebSocket | wsr |
| GraphQL | gqlr |
| 认证授权 | auth, authObj, AuthorizationToken, BearerToken |
| 环境变量 | var, env |
| SSL 配置 | ssl |
| 响应处理 | jsonPath, xpath |