spring实现REST的三种形式

中秋过后,也该写点东西了。本文主要讲,spring实现rest的三种形式。下面依次讲解

第一种形式,采用http get的请求方式,即问好传参的方式:

1、请求示例:http://127.0.0.1:8080/spring03/app/query?from=20190001&to=20190004

2、后端示例代码

	/**
	 * 参数可以添加注解,但是命名要跟请求时的变量一致
	 * @param n1
	 * @param n2
	 * @return
	 */
	@GetMapping("query")
	public List query(@RequestParam("from") Integer n1 , @RequestParam("to") Integer n2)
	{
		List result = new ArrayList<>();
		
		for(Student s : DemoDB.list)
		{
			if(s.getId() >= n1 && s.getId() <= n2)
			{
				result.add( s );
			}
		}
		
		return result;		
	}

第二种,通过HTTP  post方式请求,通过表单提交数据,一下是示例代码

1、前端

  
var M = {} M.save = function(){ // 取得用户的输入 var req = {}; req.id = Number( $('.id').val().trim()); // Number类型 req.name = $('.name').val().trim(); req.sex = $('.sex').val() == 'true'; // Boolean类型 req.cellphone = $('.cellphone').val().trim(); if(req.name.length==0) return; // 默认地 jquery 按表单格式上传数据 jQuery.ajax({ url: 'app/add', method: "POST", data: req, // 请求数据,由jquery自动转成表单格式 dataType: 'json', // 将应答数据转成json success: function(ans){ alert('成功'); }, error: function( jqXHR, textStatus, errorThrown){ alert('出错'); } }); }

2、后端代码

	@PostMapping("add")
	public Map add(int id, String name, boolean sex, String cellphone)
	{
		System.out.println("0000");
		Map result = new HashMap<>();
		result.put("error", 0); // 错误码,0表示成功
		result.put("reason", "OK"); // 错误描述
		return result;
	}

第三种形式,当我们要提交的数据很多时,采用第二种形式显然不科学,采用第一种更加不可能。所以第三种,请求时已经将数据转成JSON格式,一下是示例代码

1、前端

    
第3种形式:HTTP POST + JSON

var M = {} M.save = function(){ // 取得用户的输入 var req = {}; req.id = Number( $('.id').val().trim()); // Number类型 req.name = $('.name').val().trim(); req.sex = $('.sex').val() == 'true'; // Boolean类型 req.cellphone = $('.cellphone').val().trim(); if(req.name.length==0) return; // 默认地 jquery 按表单格式上传数据 jQuery.ajax({ url: 'app/add2', method: "POST", contentType: 'application/json', processData: false, data: JSON.stringify(req), dataType: 'json', // 将应答数据转成json success: function(ans){ alert('成功'); }, error: function( jqXHR, textStatus, errorThrown){ alert('出错'); } }); }

2、后端代码

	@PostMapping("/add2")
	public Map add2( @RequestBody Student stu)
	{
		//Student stu = new Student(id,name,sex, cellphone);
		DemoDB.list.add( stu );
		System.out.println("添加了一条记录: " + stu.getName());
		
		Map result = new HashMap<>();
		result.put("error", 0); // 错误码,0表示成功
		result.put("reason", "OK"); // 错误描述
		return result;
	}

以上是,spring实现rest的三种形式,不足之处请多多指教。

你可能感兴趣的:(spring,rest,spring学习之旅)