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

问题描述 投票:0回答:1

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命名法的真正优势是什么?不只是炒作? 从安全角度来看,在我的例子中,我怀疑第一个网址不如第二个网站那么安全(如果我记得很清楚,烧瓶有问题),这是正确的吗?

rest api-design
1个回答
2
投票

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

REST不关心你用于标识符的拼写。

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.