|
|
1
5
从“哲学”的角度来看,这是一个大问题。 您似乎在使用GET请求来处理几乎所有的事情,比如设置速度。 REST背后的想法是,访问esx-121资源可以让您表示其当前状态,在您的情况下,它的速度、方向、是否打开等等。 在其URL上发布汽车的一些表示将有效地改变其当前状态。(例如,如果使用XML表示,则可以发布
改变它的速度。在ASP.NET MVC下,您将为此发布一个表单。 您要做的是将SOAP服务建模方法(面向操作或动词)应用于REST服务,这不是真正的想法。 很难“得到”其余的方式来做事情,而且它可以违背您在使用SOAP服务时所做的一切,但是记住这些原则是很重要的。 理论上,URL描述了一个资源,只有通过get(read)、post(create)、put(create或update)、delete(delete)执行可用的操作。 编辑:感谢Marxidad更正了每个动词应该映射到的内容。 |
|
|
2
3
除了上面的评论之外,我认为稍微改变一下结构是完全可以的。(但不使用get更新上述数据) 以CMS为例,您经常会看到以下结构:
当然,在CMS中,控制器默认为
|
|
|
3
1
REST不是关于具有干净的URI,而是关于将正确的语义附加到HTTP方法GET、POST、PUT和DELETE。 GET应该只用于安全的等幂运算,POST应该用于创建或处理,PUT应该用于更新现有资源,而DELETE应该用于(hmm)删除资源。 你可以用很多的难看的URI?和&参数,如果需要,还可以开始RESTful。 现在,关于您的uri,虽然第二个选项看起来很好,但它是一种使用非英语语言编写“纯英语”的方法。首先,这听起来可能是个好主意,但是让URI可读的主要思想是客户机可以使用它们并发现新特性。这就是为什么在URI中保留站点/应用程序的树结构总是一个更好的主意。 见 Jacob Nielsen's Alertbox about URL as UI 有关此主题的详细信息。 |
|
|
4
0
如果您定义了任何类型的URI命名结构,比如“car rego/controller/action/data etc”,那么您的API就不是静止的。它只是一个简单的RPC。不能将URI或URI命名约定定义为RESTAPI的一部分—它直接违反了RESTful体系结构的约束之一。 见 http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven 更多信息。 |
|
|
Jakob · 烧瓶REST-API:响应中的数值错误 1 年前 |
|
|
Omar Ahmed · 可以仅使用(CSRF)令牌进行身份验证吗 2 年前 |
|
|
Hyper10n · 从T-SQL查询内部管理HTTP会话 2 年前 |
|
|
Lavonne Riley · 无法获取数据并将其添加到谷歌工作表中 2 年前 |
|
|
testtt · 微服务REST调用和数据库事务 2 年前 |
|
|
JoeBim · PHP中的中程API 2 年前 |