美文网首页Java
简明理解REST和RESTful

简明理解REST和RESTful

作者: 親愛的破小孩 | 来源:发表于2017-08-15 16:47 被阅读0次

    REST首先不是个英文单词,是REpresentational State Transfer的简写。直译过来是表现层状态转移。- -||,从名字讲,只是一个困惑。

    全称是Resource Representational State Transfer:

    Resource:资源,即数据(网络的核心)

    Representational:某种表现形式,比如JSON,XML,JPEG等;

    State Transfer:状态变化。通过HTTP动词实现。

     有一个概括很精辟:

    URL定位资源,用HTTP动词(GET,POST,DELETE,DETC),描述操作。


    Web端不再用之前典型的PHP或JSP架构,而是改为前端渲染和附带处理简单逻辑(AngularJs)。Web端和Server只使用上述定义的API来传递数据和改变数据状态。格式一般是json。Web,Android都变为同等角色通过一套API来消费Server提供的服务。

    为什么要使用RESTful结构呢?

       从前的网页基本都是前后端揉在一起,比如PHP和JSP等。但随着移动互联网的发展,各种类型的Client层出不穷,RESTful可以通过一套统一的接口为Web,IOS等提供服务。

    如何设计Server的API才满足RESTful要求?

      2.API versioning 可以放在URL里面,也可以用HTTP的header:/api/v1/

      3.URL使用名词而不是动词,且推荐用复数。

    GET/products:will return the list of all products

    好过      /getProducts

      4.保证HEAD和GET方法是安全的,不会污染资源状态

        杜绝GET/deleteProduct?id=1这种情况

      5.资源的地址推荐用嵌套结构

        比如:GET /friends/10375923/profile

      6.警惕返回结果的大小,如果过大,及时分页(pagination)或者加入限制(limit)。HTTP协议支持分页操作。

       7.使用正确的Http status Code表示访问状态

        8.在返回结果用明确易懂的文本,而且适当的加入注释。

        9.关于安全:自己的接口就用https,加上一个key做一次hash放在最后即可。

    相关文章

      网友评论

        本文标题:简明理解REST和RESTful

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