Resutful接口规范

一、什么是Resutful

Restful就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格,是对http协议的诠释。回顾:之前的URL地址
查询所有的用户:http://localhost:8080/springmvc/user/selectAllUser
按ID查询用户:http://localhost:8080/springmvc/user/selectByUserId?id=12
删除用户:http://localhost:8080/springmvc/user/deleteByUserld?id=12
修改用户:http://localhost:8080/springmvc/user/updateByUserId?id=12&username=‘G’
增加用户:http://localhost:8080/springmvc/user/addUser?id=12&username=‘G’

二、资源设计规则

资源定位︰互联网所有的事物都是资源,要求url中没有动词,只有名词,没有参数。而且所有的名词往往与数据库的表名对应,一般来说,数据库中的表都是同种记录的集合,所以URI中的名词也应该使用复数
url请求的风格就像这样:
http://localhost:8080/springmvc003/usershttp://localhost:8080/springmvc003/depts

三、动作设计规则

资源操作:使用put、delete、post、get等不同方法对资源进行操作,分别对应添加、删除、修改、查询。一般使用时还是post和get , put和delete几乎不使用。
GET(SELECT):从服务器去取出资源(一项或者多项)
POST(CREATE):在服务器新建一个资源
PUT(UPATE):在服务器更新资源(客户端提供改变的完整资源)。PUT更新整个对象
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。PATCH更新个别属性

HEAD:获得一个资源的元数据
OPTIONS:获得客户端针对一个资源能实现的操作

四、返回结果规则

1)确定HTTP的返回状态
HTTP的返回状态一般有以下几种
200:成功
400∶错误
404:没有找到资源
403∶禁止
406∶不能使用请求内容特性来响应请求资源,比如请求的是HTML文件,但是消费者的HTTP头包含了JSON要求。

500∶服务器内部错误2)定义统一返回的格式
为了保障前后端的数据交互的顺畅,建议规范数据的返回,并采用固定的数据格式封装,如异常信息︰

{
"code":10001,
"msg":"异常信息""data":null
}

成功信息︰

{
	"code":200,
	"msg" : "success",
	"data":{
		"id":1,
		"name" : "Giles",
		"age":2
	}
}

五、@PathVariable注解

$("#testResultful").click(function () {
    $.ajax({
        url: "depts/1",
        type: "GET",
        success: function (data) {

        },
        dataType: "JSON"
    });
});
    @GetMapping(value = "/depts/{id}")
    public ResultDto selectDeptById(@PathVariable("id") Integer id) {
        logger.info("按ID查询部门");
        logger.info("获取id为:" + id);
        return null;
    }

执行结果:
在这里插入图片描述
在这里插入图片描述
添加操作

前台:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录功能</title>
    <script src="static/script/jquery-1.8.3.js"></script>
    <script>
            $("#testResultful").click(function () {
                $.ajax({
                    url: "depts",
                    type: "POST",
                    success: function (data) {
                        if (data.code==200){
                            $("#msgdiv").html(data.msg);
                        }
                    },
                    contentType: "application/json;charset=utf-8",
                    dataType: "JSON"
                });
            });
        })
    </script>
</head>
<body>
<h2>用户登录</h2>
手机号:<input type="text" id="telephone"><br>
密码:<input type="text" id="password"><br>
<input type="button" value="登录" id="submit">

<input type="button" value="测试Resultful" id="testResultful"><br>
<div id="msgdiv">

</div>
</body>
</html>

后台

    @PostMapping(value = "/depts")
    public ResultDto addDept(Dept dept) {
        logger.info("===增加部门信息==");
        ResultDto resultDto = new ResultDto();
        resultDto.setCode(200);//一般不会讲状态码显示在这里,在实际开发中会建立一个常量类
        resultDto.setMsg("增加部门成功");

        Dept resultDept = new Dept();
        resultDept.setId(1);
        resultDept.setDname("技术部");
        resultDto.setData(resultDept);
        return resultDto;
    }

执行结果:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值