如果API仅使用GET/Retrieve,那么它是RESTful的

如果API仅使用GET/Retrieve,那么它是RESTful的,rest,Rest,如果API只允许通过GET检索数据,不允许创建、更新或删除,那么它仍然是RESTful的吗 我质疑这一点,因为维基百科说,当客户机持有资源的表示(包括附加的元数据)时,它有足够的信息来修改或删除资源。作为休息的约束 如果这个问题看起来很傻,我很抱歉,但我正试图达到我可以自信地说‘我理解其余的’的程度 我相信API仍然是RESTful的,即使它没有实现所有动词。这并不是所有资源都有意义。有些动词可能不适用,或者客户可能无权执行这些动词 以报纸文章为例。我可以看出GET是唯一可用的动词,因为新闻站点

如果API只允许通过GET检索数据,不允许创建、更新或删除,那么它仍然是RESTful的吗

我质疑这一点,因为维基百科说,当客户机持有资源的表示(包括附加的元数据)时,它有足够的信息来修改或删除资源。作为休息的约束


如果这个问题看起来很傻,我很抱歉,但我正试图达到我可以自信地说‘我理解其余的’的程度

我相信API仍然是RESTful的,即使它没有实现所有动词。这并不是所有资源都有意义。有些动词可能不适用,或者客户可能无权执行这些动词

以报纸文章为例。我可以看出GET是唯一可用的动词,因为新闻站点可能只发布用于阅读的API,即获取文章

至于维基百科的定义,我会稍微改变一下,说它有足够的信息来尝试修改或删除资源


API可以通过响应代码传达对某些动词的支持/不支持。如果不支持删除,客户端删除请求将看到HTTP 405不受支持的响应。

是的,系统可以使用REST,即使它不允许修改资源


REST最常见的实现和使用是用于万维网的HTTP 1.1,即使REST的实现取得了不同的成功。绝大多数资源都是只读的。

REST不与任何特定协议耦合,因此所使用的方法不会影响API的REST性,只要这些方法用于其标准化行为,并且记录了任何偏差。例如,没有什么可以阻止您使用RETR方法通过FTP实现类似的只读API


真正重要的是客户机如何获取他们正在检索的资源的URI。如果他们使用带外信息,比如文档中的URI模式,那么这不是RESTFUL。资源应该有相互引用的链接,客户端应该能够从初始入口点URI开始找到他们想要的任何东西。如果您对此有疑问,请用谷歌搜索HATEOAS。

从GET请求发送到客户端的状态可能确实包含稍后更新该状态所需的所有信息。服务器不需要允许该更新或公开其功能,但客户端仍然可以保存更改状态所需的信息。