SpringMVC开发了Restful API参数采集方法
优采云 发布时间: 2020-08-08 21:41内容
1. Restful API的简单描述
一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答。
Rest:表述性状态转移
在Server提供的RESTful API中,URL中仅使用名词来指定资源. 原则上,不使用动词. HTTP协议中的动词用于添加,修改和删除资源. 也就是说,资源状态通过HTTP动词反转:
GET用于获取资源,
POST用于创建新资源(也可以用于更新资源)
PUT用于更新资源,
DELETE用于删除资源.
2. 采集参数问题
在设计Restful API时,很多时候需要以不同的方式采集参数,例如登录,更新帐户等. 下面着重介绍不同请求方法下的参数采集问题. 原则上,前端和后端使用json作为数据交换格式. (用于: SpringMVC,JQuery,AJAX,JSP)
测试按钮编写表格:
2.1RequestMethod.GET
在get请求中,默认参数提交方法反映在url中. get请求是获取服务器端数据. 不建议提交复杂的数据类型. 如果涉及多种数据或复杂数据类型,则需要更改为过帐. ,以下是获取请求的示例:
: 8080 / api / user?userName = kent&userId = 1
背景写法:
@RequestMapping(value = "/login",method = RequestMethod.GET)
public JsonResult login(@RequestParam("mydata") String data){
System.out.println(data);
return new SuccessResult().setData(data);
}
JsonResult和SuccessResult是自定义数据结构,以促进与Json的前端和后端交互. @RequestParam是用于接收请求参数的标签,当变量名称与请求参数名称名称不一致时,使用value来指定请求参数.
示例请求网址: 9999 / login?mydata = hello
前景符号:
$("#button3").click(function () {
var mydata = "mydata=hello";
var url = "/login";
$.ajax({
url : url,
type : 'GET',
data : mydata
});
});
请求数据以字符串形式进行拼接,后台采集的参数是你好
2.2RequestMethod.POST
在这种类型的请求中,参数可以封装在实体类中. 当后台接收到数据时,框架将自动解析并将数据映射到JavaBean. 邮政请求方法是将前端客户输入的数据提交到后台进行处理. 数据安全性.
背景写作方法
@RequestMapping(value = "/login",method = RequestMethod.POST)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
前景符号:
$("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'POST',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
规范前台参数时要注意两点. 一种是内容类型,默认的内容类型是application / x-www-form-urlencoded. 如果要向服务器提交数据,则需要将内容类型指定为application / json. 否则,服务器接收到的为空;第二点是使用JSON.strinify()函数将数据格式化为Json格式.
2.3RequestMethod.PUT
用于更新资源的参数提交方法类似于post
背景写法:
@RequestMapping(value = "/login",method = RequestMethod.PUT)
public JsonResult login(@RequestBody Address address){
System.out.println(address);
return new SuccessResult();
}
前端写入方法:
$("#button3").click(function () {
var url = "/login";
var address = {};
address['id'] = 1;
address['province'] = "maopp";
address['city'] = "hihihi";
$.ajax({
url : url,
type : 'PUT',
contentType: "application/json;charset=utf-8",
data : JSON.stringify(address)
});
});
2.4RequestMethod.DELETE
它用于删除资源或注销帐户. 您可以在url或Json表单中提交参数. 在大多数情况下,您只需要传递整数类型的数据(例如,要删除用户,只需提交用户ID)
背景写作形式:
@RequestMapping(value = "/deleteUser/{id}",method = RequestMethod.DELETE
)
public JsonResult logout(@PathVariable Integer id){
//注销session
userService.deleteById(id);
}
使用@PathVariable批注支持从请求的URL中获取数据. 应该注意的是,URL上的参数名称必须与方法中的变量名称一致.