一个restful api必须使用get,post,put或delete请求方法.提交的行为和数据完全由uri字符串决定.没有查询参数或发布变量.
这是真的 ?
有效期: http://example.com/foo/84
没有有效:http://example.com/foo/?value=84
有效期:
$.ajax({
type: 'POST',
url: "http://example.com/foo/84",
success: success,
dataType: dataType
});
Run Code Online (Sandbox Code Playgroud)
没有有效:
$.ajax({
type: 'POST',
url: "http://example.com/foo/",
data: 84,
success: success,
dataType: dataType
});
Run Code Online (Sandbox Code Playgroud)
编辑 目前为止的两个答案,相互矛盾.
这是第三个与其他两个相矛盾的答案.
RESTful URI几乎是矛盾的.URI的语义与REST无关,REST唯一重要的是一个URI只标识一个资源.除此之外,URI是原子标识符,其语义无关紧要.
对于REST,指向Joe Doe的用户资源的URI是否为:
http://example.com/users/joedoe
Run Code Online (Sandbox Code Playgroud)
要么:
http://example.com/users?username=joedoe
Run Code Online (Sandbox Code Playgroud)
要么:
http://example.com/jif892mfd02-18f2
Run Code Online (Sandbox Code Playgroud)
甚至:
ftp://example.com/users/joedoe.json
Run Code Online (Sandbox Code Playgroud)
没关系!URI在RESTful应用程序中不需要具有任何含义.人们花了很多时间为他们的REST应用程序设计有意义的URI,同时他们应该关注他们的媒体类型.当您单击网页上的链接时,您不关心URI的语义,您只关心标签.使用REST API的客户端也会发生同样的事情.您的媒体类型的文档应该通过标签描述可用的链接和它们的作用,您只需按照它们即可.
如果你关心URI的语义,这表明你的客户正在从文档中的某个模板构建URI,而你没有使用HATEOAS,这意味着你根本就不做REST.
| 归档时间: |
|
| 查看次数: |
5281 次 |
| 最近记录: |