我们可以说“如果一个 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”构造函数使用初始化列表