【发布时间】:2019-08-24 05:11:30
【问题描述】:
我是构建 HTTP API 的初学者,我似乎对 REST API 和 Web API 之间的区别感到困惑。我在网上阅读了更多关于它的信息,似乎混淆了。我猜菲尔丁和这个链接有同样的问题http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
我在工作中构建了一个 HTTP API,以为我构建了一个 REST API,因为我在任何地方都在构建 Web/HTTP API 并将其称为 REST。
当我发现一个遵循 HATEOAS 原则的 API 是一个 Github REST API https://api.github.com。我尝试在 Github (GET https://api.github.com/users/vvs14) 上使用它作为我的用户名,它根据 HATEOAS 原则返回所有相关链接。
它是最接近 REST 规范的真实世界 API 之一,恕我直言。虽然我不明白哪个 URI 支持对它的什么操作,以及如果我是它的消费者,或者如果我托管 API,如何告诉消费者如何在任何 REST API 的情况下找到它?
一个不错的博客是https://www.e4developer.com/2018/02/16/hateoas-simple-explanation/。
大多数博客中都给出了所有其他示例,只是告诉使用 JSON 作为 REST API,将所有内容作为资源作为 REST API,并使用 HTTP 动词进行 CRUD 操作作为 REST API。我不认为这些是真的。
在我的工作中,我使用 Sendgrid 的 Web API 向客户发送电子邮件,他们称之为 Web API,而不是 REST,我认为这很正确。
谁能用例子说明这两者之间的区别?
如果 Github API 是 REST API 的正确示例,我们如何知道哪个 URI 支持哪些操作,因为这里没有提到媒体类型?
【问题讨论】:
标签: rest api web-services http web