目前主流的三种web服务交互方案:web
REST (Representational State Transfer) 表征性状态转移
SOAP (Simple Object Access Protocol)简单的对象访问协议
XML-RPC (XML Remote Procedure Call)基于XML的远程过程调用数据库
但最为流行最为经常使用就是restful,而当一个架构符合REST的约束条件和原则,咱们就称它为restful架构。
为了不明文传输,更好的维护数据传输时的安全性,restful规范推荐使用https替代http。编程
1.restful规范就是在想要完成程序间数据交互的代码时所须要的遵循的规范,它视网上的一切数据为资源,全部的操做都是在对资源进行增删改查,因此这是一种面向资源式的编程。
2..若是说数据库就是资源库,那么URL就是用于检索的目录和直达资源的高速路。为了不歧路亡羊的事情发生,因此在编写URL的时候必须遵循固定的规范,表达出的信息也要清晰明确,不至于产生歧义。
在URL中要明确体现一下几点:
1.api标识:http://www.xxxx.com/api/...
2.版本信息:http://www.xxxx.com/api/v1...
3.用名词而不是动词来表示所访问资源的种类,所用名词每每与数据库表格的名称相同json
3.若是要经过在url中添加一些筛选条件,实现对资源的精准定位和对状态的精确控制,通常是以?+关键字= int整型 (须要在前段作好正则匹配)
http://www.luffycity.com/api/user/?page=1&type=9 #api
4.restful规范下的URL代码比FBV下的URL要更加精简,只须要一个URL就能完成全部操做,由于他是根据不一样的请求方法来判断对数据进行何种操做,而不须要分别为增删改查各设置一个URL。安全
返回值:要以json的形式返回值,delete的返回值为空
GET http://www.luffycity.com/api/user/
[
{'id':1,'name':'alex','age':19},
{'id':1,'name':'alex','age':19},
]
POST http://www.luffycity.com/api/user/
{'id':1,'name':'alex','age':19}restful
GET http://www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} PUT http://www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} PATCH https//www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} DELETE https//www.luffycity.com/api/user/2/ 空6.给用户返回状态码:
操做异常时,要返回错误信息架构
{ error: "Invalid API key"}
要为可能跳转的下一个网页要提供接口:Hypermedia AP
{
'id':2,
'name':'alex',
'age':19,
'depart': "http://www.xxx.com/api/user/30/"
}url