在开始写之前,个人认为在编程中,对于 java 来说是一切事物皆对象,在 Restful 架构风格中核心思想是资源,可以含糊的说为“一切链接皆资源”,接下来说说 restful
一、restful 是什么?
Rest 与 Restful 简单理解为同一回事,基于 REST 构建的 API 就是 Restful 风格,REST 就是一种设计 API 的模式。最常用的数据格式是 JSON。Rrestful 是什么一种分布式系统应用层解决方案、能够实现 client 与 server 的解耦。Restful 是一种面向资源的一种如那件架构风格,他可以降低开发的复杂性,提高系统的可伸缩性。
restful 面向资源接口设计以及操作抽象简化了开发者的不良设计,同时极大限度利用资源。
二、设计规范:
协议:使用 https
域名:尽量将 api 部署在专有域名下
版本:放在 url 或者是 header 中
路径:每一个地址都是表示一种资源,不能有动词,只有名次,一般来说 API 中名词为复数
过滤信息: ?Limit=10 ?Offset10 ?Page=1 ?Sortby=name(排序)
三、请求方式:
面向资源的接口设计,抽象操作作为基础的 CURD
Method | CRUD | Detail |
---|---|---|
GET | READ | 从服务器取出资源(一项或多项) |
POST | CREATE | 在服务器新建一个资源 |
PUT | UPDATE | 在服务器更新资源(客户端提供改变后的完整资源) |
PATCH | UPDATE | 在服务器更新资源(客户端提供改变的属性) |
DELETE | DELETE | 从服务器删除资源 |
HEAD | 获取资源的元数据 | |
OPTIONS | 获取信息,关于资源的哪些属性是客户端可以改变的 |
四、Spring 中的应用:
//@RequestMapping(value = "/{id}", method = RequestMethod.GET) @GetMapping(value="/{id}") public String toUpdate(@PathVariable("id") Integer id, Student stu) {}
Method | or1 | or2 |
---|---|---|
GET | @GetMapping() | @RequestMapping(method = RequestMethod.GET) |
POST | @PostMapping() | @RequestMapping(method = RequestMethod.POST) |
PUT | @PutMapping | @RequestMapping(method = RequestMethod.PUT) |
PATCH | @DeleteMapping | @RequestMapping(method = RequestMethod.PATCH) |
DELETE | @DeleteMapping | @RequestMapping(method = RequestMethod.DELETE) |
HEAD | @RequestMapping(method = RequestMethod.HEAD) | |
OPTIONS | @RequestMapping(method = RequestMethod.OPTIONS) |
五、返回结果:
方式 | 路径 | 说明 |
---|---|---|
Get | /demos | 返回资源对象列表 |
Get | /demos/1 | 返回单个资源对象 |
Post | /demos | 返回新生成资源对象 |
Put | /demos/1 | 返回完整的资源对象 |
Patch | /demos/1 | 返回修改的属性 |
Delete | /demos/1 | 返回空的相应体 |
六、AJAX 请求
$.ajax( {
type : "DELETE",
url : "/test/demo/" + id,
dataType : "json",
success : function(data) {
alert(data);
location.href = "/test/demo/1";
}
});
PS:
- SOAP 安全性高于 REST,但是 REST 效率与易用性高于 SCOP
- Post 是不幂等方法,get 是幂等方法。幂等性:发送 100 次与发送一次的引起的边界效应一致也就是结果一致
- Get、Head、Options 安全方法,只是获取数据,不具有边界效应
❤️ 给梦想一点时间,每天进步一点点 ❤️
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于