Editor REST Client

制作一个http请求

请求行

GET https://example.com/comments/1 HTTP/1.1

POST https://example.com/comments/1

https://example.com/comments/1

如果省略request方法,请求将被视为GET

GET https://example.com/comments?page=2&pageSize=10

有时在单个请求中可能有多个查询参数,将所有查询参数放在请求行中很难阅读和修改。所以我们允许你将查询参数传播到多行(一行一个查询参数),我们将在请求行开始后立即解析行,?并且&像

GET https://example.com/comments
?page=2
&pageSize=10

请求头

紧接在第一个空行的请求行之后的行被解析为请求标题。请提供标准field-name: field-value格式的标题,

每行代表一个标题。默认情况下,如果未明确指定,则会在请求中REST Client Extension

添加`User-Agent`带有值的标头`vscode-restclient`。
您还可以在设置中更改默认值`rest-client.defaultHeaders`。以下是请求标头的示例:
User-Agent: rest-client
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6,zh-CN;q=0.4
Content-Type: application/json

请求体

如果你想提供请求主体,请添加请求行和请求头后,一个空行,之后它会被视为所有内容的请求体。以下是请求正文的示例:

POST https://example.com/comments HTTP/1.1
Content-Type: application/xml
Authorization: token xxx <request>
<name>sample</name>
<time>Wed, 21 Oct 2015 18:27:50 GMT</time>
</request>

如果请求体内容很大,可以将请求体写在文件中,然后引用这个文件

示例

POST http://dev.avatarinternalapi.jd.com/alarm/alarm-info
Content-Type: {{contentType}} < ./alarm.json

变量

自定义变量

 自定义变量包含 环境变量  文件变量  请求变量
环境变量

不同环境下可以切换使用不同的变量

在哪定义:设置->工作区设置

{"rest-client.environmentVariables": {
"$shared": { //共享变量
"version": "v1"
},
"local": { //本地变量
"version": "v2",
"host": "dev.avatarinternalapi.jd.com",
"token": "test token"
},
"production": {
"host": "example.com",
"token": "product token"
}
}}

production 中没有version时,调用production环境时,回去找$shared 中的version

文件变量
  • 对于文件变量,定义遵循@variableName = variableValue占用完整行的语法。
  • 变量名称不得包含任何空格。至于变量值,它可以由任何字符组成,甚至允许空格(前导和尾随空格将被剥离)。
  • 如果你想保留一些像换行符这样的特殊字符,你可以使用反斜杠 \n
  • 无论您在何处定义文件变量http文件,它们可以在整个文件的任何请求中引用
@host = dev.avatarinternalapi.jd.com
@contentType = application/json GET http://{{host}}/alarm/email-info?pin=zhangkaixuan100,zhangkaixuan1002 Content-Type: {{contentType}}
请求变量

求变量的定义语法就像单行注释一样,在所需的请求URL之前 # @name newname

使用场景:当一个请求需要其他请求的值,作为请求的参数时

请求变量引用语法如下{{requestName.(response|request).(body|headers).(JSONPath|XPath|Header Name)}}

您有两个参考部分选择响应或请求:正文和标题。对于正文部分,它只适用于JSONXML响应,您可以使用JSONPathXPath

来提取特定的属性或属性。例如,如果JSON响应返回body {"id": "mock"}

则可以将JSONPath部分设置$.id为引用id

示例:

###

# @name createComment
POST {{baseUrl}}/comments HTTP/1.1
Content-Type: application/json ### # @name getCreatedComment GET {{baseUrl}}/comments/{{createComment.response.body.$.id}} HTTP/1.1 Authorization: {{login.response.headers.X-AuthToken}}

系统变量

系统自带的一些变量,使用系统变量需要有 $符号

  • {{$guid}} 唯一识别号
  • {{$randomInt min max}} 返回一个minmax 之间的随机数
  • {{$timestamp [offset option]}}:添加UTC时间戳。
  • {{$timestamp number option}},例如3小时前{{$timestamp -3 h}};代表后天{{$timestamp 2 d}}

更多系统变量用法请参考 官方文档

系统设置

可以用户设置中,覆盖系统设置

示例: "editor.fontSize": 13, 将系统默认的字体大小改为13

更多用户设置用法请参考 官方文档

rest editor 和 postman对比

安装和启动
  • postman 属于一个pc端的应用,需要下载和安装,每次使用需要启动应用
  • rest editor 属于一个插件,高版本的phpstorm自带,可以在phpstom中直接使用,无需单独启动新应用
  • 结论:在安装和启动上,rest editor 更加快捷
操做使用
  • postman 有功能强大的操做界面,使用起来方便,支持全局变量的定义。对于一个http请求中所需的所有参数,几乎都可以在界面中定义。
  • rest editor 没有操做界面,需要定义一个.http后缀的文件,在文件中编写请求。一个http请求的所需参数,都需要手动编写,一般编辑器会有参数联想功能。
  • 结论: 在编写一个完整的http请求的过程中,postman显得更加方便一点;二者都可以保存编写的http请求
学习成本
  • 结论: 相比而言rest editor 学习成本更高,应为是纯手动编写http请求,需要学习rest editorhttp请求的编写规则,并且需要熟练掌握http协议。
团队协作
  • postman: 与他人共享编写过的的http请求需要付费
  • rest editor 可以将编写的文件同步到代码仓库,实现团队共享
  • 结论: rest editor 更甚一筹

其他

制作curl

鼠标放置到请求上,邮件单击选择Copy Request As cURL

curl --request POST --url http://dev.avatarinternalapi.jd.com/alarm/alarm-info --header 'content-type: application/json' --data '< ./alarm.json'

快捷键的使用

  • Ctrl+Alt+L(Cmd+Alt+L对于macOS) 重新重新运行上一个请求
  • Ctrl+Alt+K(Cmd+Alt+K对于macOS) 停止请求
  • Ctrl+Alt+E(Cmd+Alt+E对于macOS) 选择一个环境

更多快捷键用法请参考 官方文档

保存响应

保存完整的响应

左上角保存的图表

保存响应正文

左上角保存正文图表

生成原始的请求代码段

选中一次请求的所有代码后 ->点击右键 -> 选择Generate Code Sinppet ->选择你想要的语言

相关资料

官方文档

转载:https://segmentfault.com/a/1190000016300254

Editor REST Client的更多相关文章

  1. Java实验四 TCP客户端和服务器的应用

    实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全 4.对通信内容进行摘要计算并验证 实验步骤 1.信息安全传送: 发送方A——————>接收方B A加密时,用B ...

  2. Android应用Preference相关及源代码浅析(SharePreferences篇)

    1 前言 在我们开发Android过程中数据的存储会有非常多种解决方式,譬如常见的文件存储.数据库存储.网络云存储等,可是Android系统为咱们提供了更加方便的一种数据存储方式.那就是SharePr ...

  3. [转]C#打造一个开源webgis(一)系统架构

    搭建一个GIS系统,为了能同时适应C/S和B/S架构,建议是做成自己的地图服务api方式,这样,一个或多个系统,就能通过统一的地图服务接口提供,而通信可以采用http的resful方式,而一个webG ...

  4. perl HTML::LinkExtor模块(2)

    use LWP::Simple; use HTML::LinkExtor; $html_code = get("https://tieba.baidu.com/p/4929234512&qu ...

  5. Microsoft Dynamics AX 2012 X++ Editor Extensions

    Microsoft Dynamics AX 2012 X++ Editor Extensions Initial version of this project is based on the MSD ...

  6. Test Markdown Editor

    Last night, I just saw a cute blogger's homepage. Then I want to write something. But anyway, I use ...

  7. Learning WCF Chapter1 Generating a Service and Client Proxy

    In the previous lab,you created a service and client from scratch without leveraging the tools avail ...

  8. WCF Service Configuration Editor的使用

    原文:http://www.cnblogs.com/Ming8006/p/3772221.html 通过WCF Service Configuration Editor的配置修改Client端 参考 ...

  9. 百度editor调用【图片上传阿里云】

    百度editor调用简单,但是图片和文件上传阿里云就有点难度了.下面我详细说一下. 百度富文本编辑器下载地址:http://ueditor.baidu.com/website/download.htm ...

随机推荐

  1. python学习笔记:接口开发——PythonWEB框架之Flask

    Flask是一个使用 Python 编写的轻量级 Web 应用框架,安装命令如下 pip install flask 一.服务端接口是怎么开发的? 1.启动一个服务 2.接收到客户端传过来的数据3.登 ...

  2. Django框架(二十九)—— 跨域问题

    目录 跨域问题 一.同源策略 二.CORS(跨域资源共享) 三.CORS两种请求(简单请求与非简单请求) 1.简单请求(一次请求) 2.非简单请求(两次请求) 四.CORS在Django中的应用 1. ...

  3. jQuery表单对象属性过滤器再探究(原创)

    上面例子的总结: 1.”+n+”千万不要把前面或者后面的+漏掉了.否则不会出现正确结果 2.$(“:checkbox”).click(countChecked)注意写法,不是click(functio ...

  4. 数据转化之JSON

    1.定义:Json(JavaScript Object Notation)是一种轻量级的数据教换模式,简单来说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结 ...

  5. Mybatis中#{}与${}的使用

    含义 #{}:为占位符 ${}:为拼接符 区别: 用法 #{}:为参数占位符?,即sql预编译         ${}为字符串替换, 即字符串拼接 执行流程 #{}:动态解析 --> 预编译 - ...

  6. ansible了解

    基础知识: ansible简介 ansible 是个什么东西呢?基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令 ...

  7. Vue.js 入门:从零开始做一个极简 To-Do 应用

    Vue.js 入门:从零开始做一个极简 To-Do 应用 写作时间:2019-12-10版本信息:Vue.js 2.6.10官网文档:https://cn.vuejs.org/ 前言  学习 Vue ...

  8. UltraEdit常用快捷键

    UltraEdit是一套功能强大的文本编辑器,可以编辑文本.十六进制.ASCII码,可以取代记事本,内建英文单字检查.C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢. 说 ...

  9. CSS | 字体系列

    CSS字体处理中最复杂的部分是字体系列(font-family)匹配和字体加粗(font-weight)匹配,其次是字体大小(font-size)的计算. 一. 字体系列 相同的字体可能有很多不同的称 ...

  10. 事件循环--eventloop

    一.什么是事件循环? 事件循环是 JS 实现异步的具体解决方案,同步代码直接执行,异步函数或代码块先放在异步队列中,待同步函数执行完毕,轮询执行异步队列的函数. 事件循环 二.node.js中的事件循 ...