美文网首页
RESTful API

RESTful API

作者: 王宝花 | 来源:发表于2016-09-01 14:41 被阅读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>
    

    相关文章

      网友评论

          本文标题:RESTful API

          本文链接:https://www.haomeiwen.com/subject/dbwcettx.html