zoukankan      html  css  js  c++  java
  • IDEA REST Client

    当使用了IDEA REST之后,postman就可以丢了,因为,IDEA REST Client具有postman的所有功能,而且还有postman没有的功能,继续往下看。

    真香定律的原因有如下几个:

    1. 首先postman的所有功能IDEA REST Client都具备了,如REST Client控制台和历史请求记录

    2. 其次如果能够在一个生产工具里完成开发和调试的事情,干嘛要切换到另一个工具呢

    3. 然后IDEA REST Client还支持环境配置区分的功能,以及接口响应断言和脚本化处理的能力

    4. IDEA REST Client的请求配置可以用文件配置描述,所以可以跟随项目和项目成员共享

     
    从顶层工具栏依次Tools -> HTTP Client -> Test RESTFUL Web Service 打开后,IDEA REST Client控制台的界面如下样式: 
    IntelliJ IDEA自动将最近执行的50个请求保存到 http-requests-log.http 文件中,该文件存储在项目的.idea / httpRequests / 目录下
    历史记录就是一个完整的IDEA REST Client请求脚本,如果你是从控制台触发的,那么可以直接复制历史请求记录的文件放到项目里作为HTTP请求的脚本,给其他成员共享,如果不是,也可以直接新建一个.http或者.rest结尾的文件,IDEA会自动识别为HTTP请求脚本。
     

    语法部分

    ### 演示POST请求
    POST {{baseUrl}}}get?show_env=1
    Accept: application/json
    
    {
       "name":"a"
    }
    ### 演示GET请求
    
    GET {{baseUrl}}}/post
    Content-Type: application/x-www-form-urlencoded
    
    id=999&value=content

     首先通过###三个井号键来分开每个请求体,然后请求url和header参数是紧紧挨着的,请求参数不管是POST的body传参还是GET的parameter传参,都是要换行的

     

    环境区分

    {{baseUrl}}的占位符,这个就是IDEA REST Client真香的地方,支持从指定的配置文件中获取到环境相关的配置参数,不仅baseUrl可以通过占位符替换,一些请求的参数如果和接口环境相关的都可以通过配置文件来区分。
    首先在.http的脚本同目录下创建一个名为http-client.private.env.json的文件,然后内容如下,一级的key值时用来区分环境的,比如,dev、uat、pro等,环境下的对象就是一次HTTP请求中能够获取到的环境变量了,你可以直接在请求的HTTP的脚本中通过{{xx}}占位符的方式获取到这里配置的参数。
    {
      "uat": {
        "baseUrl": "http://gateway.xxx.cn/",
        "username": "",
        "password": ""
      },
      "dev": {
        "baseUrl": "http://localhsot:8888/",
        "username": "",
        "password": ""
      }
    }

       

    结果断言

    IDEA REST Client可以针对接口的响应值进行脚本化的断言处理,立马从一个接口调试工具上升到测试工具了,比如:
    ### Successful test: check response status is 200
    GET https://httpbin.org/status/200
    
    > {%
    client.test("Request executed successfully", function() {
      client.assert(response.status === 200, "Response status is not 200");
    });
    %}

      

    结果值暂存

    试想下这样的场景,当一个系统需要通过认证才能访问的时候,如果用postman的时候,是不是先访问登录接口,然后获得token后,手动粘贴复制到新的调试接口的header参数里面去,这太麻烦了,IDEA REST Client还有一个真香的功能,可以完美解决这个问题,请看下面的脚本:
    ### 演示POST请求
    POST https://httpbin.org/post
    Content-Type: application/json
    
    {
      "user": "admin",
      "password": "123456"
    }
    
    > {% client.global.set("auth_token", response.body.json.token); %}
    ### 演示GET请求
    
    GET https://httpbin.org/headers
    Authorization: Bearer {{auth_token}}

     在第一个认证的请求结束后,可以在response里拿到返回的token信息,然后我们通过脚本设置到了全局变量里,那么在接下来的接口请求中,就可以直接使用双大括号占位符的方式获取到这个token了

      
     
    官方文档:https://www.jetbrains.com/help/idea/http-client-in-product-code-editor.html
    参考来源:http://www.kailing.pub
     
     

  • 相关阅读:
    【BZOJ4637】期望 Kruskal+矩阵树定理
    IEnumerable是什么
    (转)IIS windows认证
    使用pgrouting进行最短路径搜索
    Nginx设置防止IP及非配置域名访问
    java 调用c# web api 代码
    一台机器部署多个tomcat服务 nginx反向代理多个服务 笔记
    利用Kettle 从Excel中抽取数据写入SQLite
    sql server 统计信息
    sql server 索引碎片相关问题
  • 原文地址:https://www.cnblogs.com/ooo0/p/15238976.html
Copyright © 2011-2022 走看看