ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring MVC学习11--实现RestFul风格的API设计

2021-10-27 08:32:36  阅读:142  来源: 互联网

标签:11 function users -- Spring public User new id


get请求:查询

post请求:增加

put请求:修改

delete请求:删除

 

如下列api的设计:

 

 

API设计,Controller:

 1 package com.yas.controller;
 2 
 3 import com.yas.entity.User;
 4 import org.springframework.web.bind.annotation.*;
 5 
 6 import java.util.Arrays;
 7 import java.util.Date;
 8 import java.util.List;
 9 
10 /*
11      查询:所有用户      /users
12           根据id查询用户 /users{id}
13      删除:根据id删除用户 /users{id}
14      添加:添加一个用户   /users{id}
15      修改:修改一个用户   /users{id}
16  */
17 @RestController
18 public class MyRestController {
19 
20     @GetMapping("/users")
21     public List<User> queryUsers() {
22         System.out.println("使用get方式,查询所有users");
23         User user1 = new User(1, "张三", true, new Date());
24         User user2 = new User(2, "李四", false, new Date());
25         return Arrays.asList(user1, user2);
26     }
27 
28     @GetMapping("/users/{id}")
29     public User queryOne(@PathVariable("id") Integer id){
30         System.out.println("使用get方式,查询某个用户");
31         return new User(1, "张三", true, new Date());
32     }
33 
34     @DeleteMapping("/users/{id}")
35     public String deleteOne(@PathVariable("id") Integer id){
36         System.out.println("使用delete方式,删除某个用户");
37         return "ok";
38     }
39 
40     @PostMapping("/users")
41     public String saveUser(@RequestBody User user){
42         System.out.println("使用post方式,添加一个用户");
43         return "ok";
44     }
45 
46     @PutMapping("/users")
47     public String updateUser(@RequestBody User user){
48         System.out.println("使用put方式,修改一个用户");
49         return "ok";
50     }
51 }

 

测试用jsp页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script src="https://code.jquery.com/jquery-2.1.0.min.js"></script>
    <script>
        function queryAll(){
            $.ajax({
                type:"get",
                url:"${pageContext.request.contextPath}/users",
                success:function (d){
                    console.log(d)
                }
            });
        }
        function queryOne(){
            $.ajax({
                type:"get",
                url:"${pageContext.request.contextPath}/users/100",
                success:function (d){
                    console.log(d)
                }
            });
        }
        function saveUser(){
            var user = {name:'王五'};
            var userStr = JSON.stringify(user);
            $.ajax({
                type:"post",
                url:"${pageContext.request.contextPath}/users",
                data:userStr,
                contentType:"application/json",
                success:function (d){
                    console.log(d)
                }
            });
        }
        function updateUser(){
            var user = {id:3,name:'王五'};
            var userStr = JSON.stringify(user);
            $.ajax({
                type:"put",
                url:"${pageContext.request.contextPath}/users",
                data:userStr,
                contentType:"application/json",
                success:function (d){
                    console.log(d)
                }
            });
        }
        function deleteOne(){
            $.ajax({
                type:"delete",
                url:"${pageContext.request.contextPath}/users/200",
                success:function (d){
                    console.log(d)
                }
            });
        }
    </script>
</head>
<body>
    <input type="button" value="查询所有用户" onclick="queryAll()">
    <input type="button" value="查询一个用户" onclick="queryOne()"><br>
    <input type="button" value="新增一个用户" onclick="saveUser()"><br>
    <input type="button" value="更新一个用户" onclick="updateUser()"><br>
    <input type="button" value="删除一个用户" onclick="deleteOne()"><br>
</body>
</html>

 

标签:11,function,users,--,Spring,public,User,new,id
来源: https://www.cnblogs.com/asenyang/p/15468847.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有