Retrofit+RxJava实现网络请求之初识别REST, 以及RESTful的讲解

用了那么久的HTTP网络协议,今天才关注到它的设计思想,REST(Resource Representational State Transfer)。REST是面向资源的(通过URI进行暴露)。

一、REST解释:

       名词解释:资源在网络中以某种表现形式进行状态转移

       如何理解:Resource:资源,即数据。比如商品列表,朋友等;Representational:某种表现形式,比如用JSON,XML、JPEG等;State Transfer:状态变化。通过HTTP动词实现。

 

二、REST是面向资源的理解:

        URI 的设计只要负责把资源通过合理方式暴露出来就可以了。对资源的操作与它无关,操作是通过 HTTP动词来体现,所以REST 通过 URI 暴露资源时,会强调不要在 URI 中出现动词。例如:

  通常情况下URI设计:  GET /rest/api/getDogs                            REST设计概念下:   

                                                                                                             REST  GET /rest/api/dogs   (获取所有小狗狗 )
                                       GET /rest/api/addDogs                                  POST /rest/api/dogs (添加一个小狗狗) 
                                       GET /rest/api/editDogs/:dog_id                      PUT /rest/api/dogs/:dog_id (修改一个小狗狗 )
                                       GET /rest/api/deleteDogs/:dog_id                  DELETE /rest/api/dogs/:dog_id (删除一个小狗狗)

从上面的例子对比,我相信能够很明显的看出来,REST强调使用HTTP本身定义来描述行为,而URI只描述资源,这个就是REST风格。引用一句话描述就是:

 

三、RESTful风格设计

看Url就知道要什么:URL简单用于描述资源
看http method就知道干什么:使用http api method明白操作
看http status code就知道结果如何:通过返回码知道成功与否,而不是把状态掺杂到所需的资源当中

在实际使用当中,很多开发设计者,实际已经习惯于把URI复杂化了,如上述例子/rest/api/addDogs ,这个里面描述了行为,实际http的post访问方式足以表现用户使用这个URI的意图,但是在纷繁复杂的应用场景中,RESTful设计使用起来非常的困难,前行中不停地探究吧,本文旨在理解REST到底是啥就足够了

 

参考: 

https://blog.csdn.net/qq_21383435/article/details/80032375

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值