REST路由中真正的附加价值是什么?

时间:2017-12-28 18:37:30

标签: rest api-design

AFAIU,RESTful API使用http命名法来组织API 从best practices获得的例子,你最终得到:

http://api.college.com/students/3248234/courses/physics

真正的优势是什么,来自更天真的方法,例如:

http://api.college.com/course_show?STUDENTID=3248234&COURSETYPE=physics
http://api.college.com/ratings_show?STUDENTID=3248234&COURSETYPE=physics

从我的观点来看,首先是uri混合东西:对象(学生,课程)和他们的参数(学生的ID,课程类型)。我摔倒了一团糟 而且,我们并不真正知道所显示的内容。这是这个学生的课程吗?或者我们的学生取得的评分?我们可以怀疑收视率会在最后添加,如... / courses / physics / ratings,但我们无法确定,因为最后一个词是参数,而不是对象。

第二种方法更像面向对象,比如Course.show(** kwargs),无论如何都有分离函数(或调用它的方法)和参数(或称之为参数)的优点。

另外一点,使用此语义,您可以执行CRUD,但可以在界面中更详细,例如/ course_delete或/ course_suspend或/ course_postpone

所以有两个问题:
1-在Web API路由上,REST命名法的真正优势是什么?不只是炒作? 从安全角度来看,在我的例子中,我怀疑第一个网址不如第二个网站那么安全(如果我记得很清楚,烧瓶有问题),是否正确?

1 个答案:

答案 0 :(得分:2)

  

REST API命名法在Web API路由方面的真正优势是什么?不只是炒作?

REST并不关心您使用哪种拼写作为标识符。

URI Templates是概括不同资源标识符的便捷方式;这种便利性最常见于将资源标识符映射到服务器中的实现,但有时也被视为向理解hypermedia representations的客户端描述一系列标识符的方法。

在描述资源层次结构时明智地使用path segments,可以让您利用客户端resolve relative references的能力。

  

从安全角度来看,在我的例子中,我怀疑第一个网址不如第二个网站那么安全(如果我记得很清楚,烧瓶有问题),是否正确?

没有?它们都没有提供任何安全保障;它们只是标识符。