标签:oid XML 微博 通过 htm android 新鲜事 添加 http
和RPC一样,都是目前比较主流的URL链接风格,也可以说是web服务的一种架构风格。REST全称Representational State Transfer,表现层状态转移。用一句话简单的概括就是URL定位资源,用HTTP动词(GET,POST,DELETE,PUT)描述操作。其实它真正的全称是Resource Representational State Transfer,看字面意思就是资源在网络中以某种表现形式进行状态转移。我们分开来解读:
符合rest类型的结构就是Restful。
举个简单的例子:
非REST的url:http://...../queryItems.action?id=001&type=T01
REST的url风格:http://..../items/001
再比如:
http://api.qc.com/v1/newsfeed: 某人的新鲜事;
http://api.qc.com/v1/friends: 某人的好友列表;
http://api.qc.com/v1/profile: 某人的详细信息;
然后用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转:
GET http://api.qc.com/v1/friends: 获取某人的全部好友列表;
GET http://api.qc.com/v1/friends/{id}: 获取某人的指定好友;
POST http://api.qc.com/v1/friends: 添加好友;
DELETE http://api.qc.com/v1/friends/{id}: 根据id删除好友;
PUT http://api.qc.com/v1/friends/{id}: 根据id更新好友;
禁止使用类似这样的URL:http://api.qc.com/v1/deleteFriend
为了通过统一的接口为web,Android,IOS提供服务,对于微博开放平台,微信公共平台等,他们不需要有显式的前端,只需要一套提供服务的接口,也是Restful是它们最好的选择。
在restful架构中,每个URL代表一种资源,所以网址中不能有动词,只能有名词。
反例:
/getBooks
/addBook
/updateBook
/deleteBook?id=10
正例:
GET /books
POST /books
PUT /books/{id}
DELETE /books/{id}
head和get方法不会对资源的状态有所改变(污染),比如严格杜绝如下情况:
GET /deleteBook?id=10
GET、HEAD和OPTIONS均被认为是安全的方法,而PUT、POST、DELETE等请求都是不安全的(会修改数据 )。
比如:
GET /books/1003/catalog
HTTP状态可以参考:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html。
### 3.5 使用HTTPS协议
API与用户的通信协议总是使用HTTPS协议。
应该尽量将API部署在专用域名之下。
https://api.example.com
如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。
https://example.org/api/
参考:
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
http://www.ruanyifeng.com/blog/2011/09/restful.html
https://blog.csdn.net/chenxiaochan/article/details/73716617
https://www.zhihu.com/question/28557115?utm_source=wechat_search&utm_medium=organic
标签:oid XML 微博 通过 htm android 新鲜事 添加 http
原文地址:https://www.cnblogs.com/scuwangjun/p/9676792.html