我们可以说“如果一个 API 遵循 REST 的 6 个约束,那么它就是一个 RESTful API”?

Posted

技术标签:

【中文标题】我们可以说“如果一个 API 遵循 REST 的 6 个约束,那么它就是一个 RESTful API”?【英文标题】:Can we say “If an API is following 6 constraints of REST then it’s a RESTful API”? 【发布时间】:2020-09-19 15:23:29 【问题描述】:

还是我的说法完全错误?

【问题讨论】:

理论上是的,但是在实践中,因为一些use cases pointed out 可能需要进一步的限制 【参考方案1】:

嗯,你说对了一半。 是的,Roy Fielding 先生在他的博士论文中描述了 6 个限制条件。 但是,最后一个“按需代码”是可选的

参考:https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

【讨论】:

【参考方案2】:

我们可以说“如果一个 API 遵循 REST 的 6 个约束,那么它就是一个 RESTful API”?还是我的说法完全错误?

您可能需要详细了解“统一接口”约束的性质:

REST 由四个接口约束定义:资源标识;通过表示来操纵资源;自我描述的信息;并且,超媒体作为应用程序状态的引擎。

另请参阅REST APIs Must be Hypertext Driven(菲尔丁 2008 年)。

【讨论】:

【参考方案3】:

REST 定义了 6 个架构约束,这些约束使任何 Web 服务成为真正的 RESTful API。

    统一界面 客户端-服务器 无状态 可缓存 分层系统 按需代码(可选

以上所有限制都有助于您构建真正的 RESTful API,您应该遵循它们。不过,有时,如果您发现自己违反了一两个约束条件。不用担心;您仍在制作 RESTful API,但不是“真正的 RESTful”。

【讨论】:

以上是关于我们可以说“如果一个 API 遵循 REST 的 6 个约束,那么它就是一个 RESTful API”?的主要内容,如果未能解决你的问题,请参考以下文章

C++ 入门说我们可以为“=default”构造函数使用初始化列表

想知道低于哪个百分比我们可以说班级不平衡?

趣说算法--选择排序

当我们在说事件驱动的时候,我们在说什么

获取总和为 11 的所有 3 位数字,或者我们可以说模块在 JS 中为 1 [关闭]

2022年1月2日用英语怎么说