如何将 REST API 设为私有?

bam*_*seq 5 api rest

像 googlemaps API 和 facebook API 这样的 API 是公开的,任何人都可以使用。所以我的问题是如何将 REST API 设为私有,以便它只能由选定的一个消费者使用。例如,您仅为您的 pwn AngularJS 应用程序制作 Rest API。这样做很常见吗?现实世界的方法是什么?在这方面,REST API 和 REST Web 服务之间有什么区别吗?

ton*_*edz 3

如果我要编写一个私有的 RESTful API,我可能一开始就不会费心将其设为 RESTful。

通过将 REST API 设为私有,您将失去这种架构风格的主要优势之一。实现这样的 API 很困难,但作为回报,您可以轻松扩展,并且 API 的使用者能够编写不会因未来变化而中断的客户端(只要您遵循HATEOAS并使用定义良好的 API)格式)。

如果您可以选择控制服务及其所有客户端,那么放弃 RESTful 架构施加的一些约束实际上可能是一个好主意。

只要您坚持协议语义,您应该可以使用通过 HTTP 提供 JSON 的简单 API。

换句话说,您可以实现满足 2 级 API 要求的服务,如理查森成熟度模型所述

因为您不会充分利用 3 级 API 提供的优势,更不用说真正的 RESTful API,所以实施一个 API 可能只是不必要的努力。

我在对programmers.stackexchange问​​题的回答中对这些设计考虑因素进行了更全面的描述。您还可以在那里找到一些有用的参考资料。

  • 嗯,在现实世界中,例如,如果公司为 Web 应用程序和移动应用程序提供 API。如果有人使用他们的 API 制作更好的 Web 应用程序,这样所有用户都会使用它,而不是由提供 API 的公司制作的客户端,而这是不需要的,因为公司会损失收入,该怎么办? (2认同)