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上的参数名称必须与方法中的变量名称一致.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线