Post与Get方法初探以及Restful接口测试

前言

       REST – REpresentational State Transfer首先,之所以晦涩是因为前面主语被去掉了,全称是 Resource Representational State Transfer。通俗来讲就是:资源在网络中以某种表现形式进行状态转移。分解开来:
       Resource:资源,即数据(前面说过网络的核心)。比如 newsfeed,friends等;
       Representational:某种表现形式,比如用JSON,XML,JPEG等;
       State Transfer:状态变化。通过HTTP动词实现。
Restful风格主要意思如下:
1. 每一个URI代表一种资源;
2. 客户端和服务器之间,传递这种资源的某种表现层;
3. 客户端通过四个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。

       具体的对应到我们web开发中,springmvc的表现层框架的注解开发即可完美的契合到restful风格。如下就是restful风格的注解。因为是get方法,前端通过访问/api/vms/id 这个url即可获得对应id的vminfo信息。/api/vms/123456,即返回到前端的是id为123456的的vminfo。

@Controller
@RequestMapping("/api/vms")
public class vmapi {
    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public String getvm(){
    return vminfo;
}
}

如何测试Restful接口

       javaweb工作中有时候会有对后端Restful接口在对接前端之前的数据检测阶段,这时就需要对url形式的Restful进行测试。

post请求与get请求解析

       其中针对javaweb开发中后端通过http协议传递到前端数据的方式分为get,post,patch等。不同的方式数据传递也不一样,get方法的作用一般用来获取服务器端资源信息,如同查询数据库一样,不会影响到资源自身状态;而相对于get方法,post方法就提供了更强大的功能,除了能获取服务器资源以外,还能向服务器上传或是修改数据。虽然get方法也可以用来向服务器上传数据,但是一般不采用get方式,而是推荐使用post方法上传数据。因为采用get方式与服务器交互(上传数据)时,一般将数据添加至URL后面,即url后加“?”然后是变量名以及数据内容,多个变量之间使用“&”连接,如:https://11.1.1.111/api/vms/net/123?page=2&per_page=10。而post方法则是将数据通过http请求的附件形式隐式的进行传输。这样就凸显出了两个问题:
       1. get请求暴露出所有与服务器交互的数据内容,不安全。
       2. get请求使用url形式,url有长度限制。
       因此我们通常选用post请求向服务器上传和修改数据,而且一些需要加密的获取服务器资源的请求也需要通过post请求发出,那么post请求这么万能,我们为什么不都采用post请求呢?
       因为post请求和get请求所表达的语义不一样,主干网络可以对其做不同的处理,get请求所表达出来的语义是一种只读的纯粹的操作,仅仅是对服务器资源的一种读取操作(无副作用),不会改变服务器资源,因此大部分get请求都被CDN缓存了,这样就会减少真正的web服务器很大的压力;但post请求所表达出来的语义是有副作用的操作,所以所有的请求都会发送到web服务器处理。这样一来,若是将所有的get请求换成post请求,那就意味着cdn就完全没有任何存在的意义,web服务器处理的请求便会成倍的增加,因此post和get无法相互取代。
       CDN技术: CDN主要功能是在不同的地点缓存内容,通过负载均衡技术,将用户的请求定向到最合适的缓存服务器上去获取内容,比如说,是北京的用户,我们让他访问北京的节点,深圳的用户,我们让他访问深圳的节点。通过就近访问,加速用户对网站的访问。解决Internet网络拥堵状况,提高用户访问网络的响应速度。

测试接口

       get方式的接口直接通过url补全参数即可,如https://11.1.1.111/api/vms/net/123?page=2&per_page=10,参数对应注解中的同名参数,然后通过浏览器输入之后回车,即可看到服务器返回的数据,一般为json格式数据。
       post接口就需要工具测试了,因为通过http附件形式传递的数据内容,无法通过输入url直接模拟请求,需要浏览器的小插件。列举firefox浏览器的HttpRequester插件。一个springmvc注解方法如下:
       @RequestMapping(value = “/addVm”, method = RequestMethod.POST)
       public @ResponseBody String addVm(@RequestBody List vmHostlist, HttpServletRequest request)
       其中 @RequestBody List vmHostlist 就是前端需要向服务器端传递封装的数据,使用json字符串封装,list对象,在工具中的content中填充json字符串内容。然后选择发送的方式——post即可收到response返回结果。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RESTful接口测试是指测试RESTful接口的一种方法RESTful接口是一种基于HTTP协议的API接口设计风格,它使用HTTP方法(如GET、POST、PUT、DELETE等)来对资源进行操作。接口测试是为了验证接口的正确性、可用性和安全性。 首先,我们需要对接口的请求和响应进行测试测试包括发送请求并检查响应的状态码、响应时间、响应内容等,以确保接口正常工作并返回正确的数据。 其次,我们需要对接口的参数进行测试。接口可能有多个参数,我们需要测试各种可能的参数组合,包括正常参数、边界参数和异常参数,以确保接口能够正确处理各类参数,并返回正确的结果或错误信息。 接着,我们需要对接口的权限进行测试测试包括验证接口是否需要身份验证、角色权限是否正确限制以及是否存在任何安全漏洞等。 另外,我们还需要对接口的并发性能进行测试。这包括模拟多个用户同时访问接口,检查接口的响应时间、吞吐量和并发访问的稳定性,以确保接口能够在高并发情况下正常工作。 最后,我们还需要对接口的错误处理进行测试测试包括验证接口在发生错误时的错误处理机制是否正常,比如返回正确的错误码和错误信息等。 总之,RESTful接口测试是一项重要的任务,它可以帮助我们确保接口的质量和稳定性,提升用户体验和系统安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值