RESTful API

2016-09-01  本文已影响1321人  王宝花

笔者说

在笔者看来,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 的几个方法来进行不同的转换,比如

  1. get请求就是获取资源
  2. post表单请求就是创建资源
  3. delete请求就是删除资源
  4. put请求就是更新资源(客户端提供改变后的完整资源)
  5. 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>
上一篇 下一篇

猜你喜欢

热点阅读