web api是一种基于http的接口架构,大致可分为以下几个层次:
第0级,即RPC,一个URI支持一个HTTP方法,例如WCF服务,一个URI,只支持Post方法,协议在body中;
第1级,面向资源,很多URI,支持一个HTTP方法,比如/User/GetUsers,获取列表;/User/Delete,删除User;
第2级,Http谓词,很多URI,每个URI支持多个Http谓词方法,比如,/User,Post为增加,Put为修改,Delete为删除;
第3级,超媒体,资源描述自身功能及交互,主要包含“links”节点和“rel”节点,比如根Uri,/users,Post添加一个订用户,返回值类似如下:
HTTP/1.1 201 CREATED
Location:/users/100
Content-Type:application/json;profile="http://domain/users"
Content-Length:xx
ETag:"12345"
{
"userNumber":"100",
"status":"active",
"links":[
{"rel":"self",“href”:"/users/100"},
{"rel":"lock",“href”:"/users/100/lock"}
]
}
服务器返回除状态和自身之外的其他操作uri和方法等,客户端即可根据返回值选择相应操作。
我们在设计服务端接口的时候,可以根据以上标准,选择适合的级别。