![]() |
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 更多信息。 |
![]() |
Dev · 在laravel rest api中按特定角色获取所有用户 2 年前 |
![]() |
IDskxo · 为什么我们需要添加。响应的end()? 2 年前 |
![]() |
KollegeBo · 触发更新的POST或GET 3 年前 |
![]() |
meren · 如何使用react向后端api请求用户提供的值? 3 年前 |
![]() |
CaptTaifun · 如何对“多个”和“单个”对象使用相同的端点? 3 年前 |
![]() |
Zsombor Szende · 汇率api从哪里获取数据?[闭门] 3 年前 |