一个restful api只使用干净的url - 没有url变量或post变量

Nim*_*sky 1 rest restful-url

一个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)

编辑 目前为止的两个答案,相互矛盾.

Ped*_*eck 5

这是第三个与其他两个相矛盾的答案.

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.