笔者说
在笔者看来,RESTful API可以说是一个规范,就相当于一个URL地址规范,它规范了URL址的显示和访问,能够让URL地址访问更为优雅、简洁。
让我们来看一下使用RESTful API的URL与普通url地址的区别。
// 传统URL
http://future.ydma.cn/ydmaaccount/index.html
// RESTful API规范的URL
http://future.ydma.cn/ydmaaccount/login
可以看到二者区别就在于是否有后缀名,但是这仅仅是显示层面上的区别,具体的区别请看下面具体描述。
RESTful API
representational 代表、象征
state 状态
transfer 转换
翻译为中文就是:表现层状态转换。
什么的表现层
URL为统一资源定位符,URI为通用资源标识符。其实表现层就是对资源的表现,在Web端主要显示的是图片、html、css、js、txt、deb、exe、zip等等这些文件就是资源,传统的URL中会直接对资源进行展示,比如www.baidu.com/denmo.html
,这就是所谓的资源表示层。
状态转化
如何进行状态转换,这就涉及到了RESTful架构,在laravel框架中就存在resource资源路由,这个资源路由就完全符合Restful API的规范。当然我们也可以自己设置路由,进行解析URL地址之后专项争取的资源。
常见的RESTful API中,是通过HTTP 的几个方法来进行不同的转换,比如
- get请求就是获取资源
- post表单请求就是创建资源
- delete请求就是删除资源
- put请求就是更新资源(客户端提供改变后的完整资源)
- patch请求就是更新资源(客户端提供改变的属性)
这种不同的请求机制让程序的功能专一、简答易懂、清晰明了。
下面的表格是Laravel框架中的Resource资源路由的路由设计
方法 | 路径 | 动作 | 路由名称 |
---|---|---|---|
GET | /photo | index | photo.index |
GET | /photo/create | create | photo.create |
POST | /photo | store | photo.store |
GET | /photo/{photo} | show | photo.show |
GET | /photo/{photo}/edit | edit | photo.edit |
PUT/PATCH | /photo/{photo} | update | photo.update |
DELETE | /photo/{photo} | destory | photo.destory |
除了get、post请求,其他请求如何发送?
答案有两个“Ajax”、或者使用laravel的表单提交方法
$.ajax({
type:"delete",
url:"",
...
});
laravel中的提交方案
<form action="" method="post">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_method" value="put">
</form>
网友评论