• Restful设计规范,前后端分离的优缺点对比


    Restful

    REST是设计风格而不是标准。是指客户端和服务器的交互形式。我们需要关注的重点是如何设计REST风格的网络接口。

    • REST的特点:
    • 具象的(目标)。一般指表现层,要表现的对象就是资源。比如,客户端访问服务器,获取的数据就是资源。比如文字、图片、音视频等。

    • 表现(目标实体):资源的表现形式。txt格式、html格式、json格式、jpg格式等。浏览器通过URL确定资源的位置,但是需要在HTTP请求头中,用Accept和Content-Type字段指定,这两个字段是对资源表现的描述。

    • 状态转换(动作):客户端和服务器交互的过程。在这个过程中,一定会有数据和状态的转化,这种转化叫做状态转换。其中,GET表示获取资源,POST表示新建资源,PUT表示更新资源,DELETE表示删除资源。HTTP协议中最常用的就是这四种操作方式。

      • RESTful架构:
      • 每个URL代表一种资源;
      • 客户端和服务器之间,传递这种资源的某种表现层;
      • 客户端通过四个http动词,对服务器资源进行操作,实现表现层状态转换。

    如何设计符合RESTful风格的API:

    一 、域名:

    将api部署在专用域名下:

    http://api.example.com
    

    或者将api放在主域名下

    http://www.example.com/api/

    二、 版本

    将API的版本号放在url中。

    http://www.example.com/api/v1.0

    三、 路径

    路径表示API的具体网址。每个网址代表一种资源。 资源作为网址,网址中不能有动词只能有名词,一般名词要与数据库的表名对应。而且名词要使用复数。

    正确示例: http://www.example.com/api/v1.0/goods

    错误示例:  http://www.example.com/app/getgoods     #  包含动词

    四、 使用标准的HTTP方法

    对于资源的具体操作类型,由HTTP动词表示。 常用的HTTP动词有四个。

    GET     SELECT :从服务器获取资源。
    POST    CREATE :在服务器新建资源。
    PUT     UPDATE :在服务器更新资源。
    DELETE  DELETE :从服务器删除资源。
    

    示例:

    #获取指定商品的信息
    GET http://www.example.com/goods/ID
    #新建商品的信息
    POST http://www.example.com/goods
    #更新指定商品的信息
    PUT http://www.example.com/goods/ID
    #删除指定商品的信息
    DELETE http://www.example.com/goods/ID

    五、 过滤信息

    如果资源数据较多,服务器不能将所有数据一次全部返回给客户端。API应该提供参数,过滤返回结果。 实例:

    #指定返回数据的数量
    http://www.example.com/goods?limit=10
    #指定返回数据的开始位置
    http://www.example.com/goods?offset=10
    #指定第几页,以及每页数据的数量
    http://www.example.com/goods?page=2&per_page=20

    六、 状态码(前后端分离的开发都要用到状态码)

    服务器向用户返回的状态码和提示信息,常用的有:

    200 OK  :服务器成功返回用户请求的数据
    201 CREATED :用户新建或修改数据成功。
    202 Accepted:表示请求已进入后台排队。
    400 INVALID REQUEST :用户发出的请求有错误。
    401 Unauthorized :用户没有权限。
    403 Forbidden :访问被禁止。
    404 NOT FOUND :请求针对的是不存在的记录。
    406 Not Acceptable :用户请求的的格式不正确。
    500 INTERNAL SERVER ERROR :服务器发生错误。



    七、 自定义错误信息

    一般来说,服务器返回的错误信息,以键值对的形式返回。

    {
        error:'Invalid API KEY'
    }
     
    八、 响应结果

    针对不同结果,服务器向客户端返回的结果应符合以下规范。

    #返回商品列表
    GET    http://www.example.com/goods
    #返回单个商品
    GET    http://www.example.com/goods/cup
    #返回新生成的商品
    POST   http://www.example.com/goods
    #返回一个空文档
    DELETE http://www.example.com/goods
     
    九、 使用连接关联相关资源
    在返回响应结果时提供链接其他API的方法,使客户端很方便的获取相关联的信息。
    十、 其他
    服务器返回的数据格式,应该尽量使用JSON


    前后端分离的优点

    1. pc/app/pad 多端适应
    2. SPA开发模式的开始流行
    3. 前后端开发职责不清
    4. 前端一直配合后端,能力受限
    5. 开发效率问题,前后端相互等待
    6. 后台开发语言和模板高度耦合,导致开发语言依赖严重

    前后端分离的缺点

    1. 前后端学习门槛增加(前端要处理的数据变多了,后端传递数据要满足新的规范)
    2. 数据依赖导致文档重要性增加
    3. 前端工作量加大
    4. SEO的难度加大
    5. 后端开发模式迁移增加成本(之前依赖模板开发的项目)

     
    LESS IS MORE !
  • 相关阅读:
    如何在IIS7/7.5上配置IISADMPWD
    运用DebugDiag诊断ASP.Net异常
    vuecli3修改项目启动端口
    彻底删除vscode及安装的插件和个人配置信息
    angular中的 input select 值绑定无效,以及多出一个空白选项问题
    简述MVC模式
    vuecli3 运行报错
    前端开发规范
    nodejs 下载最新版本
    小程序 自定义弹窗出现后存在滚动穿透问题
  • 原文地址:https://www.cnblogs.com/maxiaohei/p/7753893.html
Copyright © 2020-2023  润新知