像facebook API的googlemaps API这样的API是公开的,任何人都可以使用。所以我的问题是如何将REST API设为私有,这样只有选择一个消费者才能使用它。例如,您只为您的pwn AngularJS应用程序制作Rest API。这样做是否常见,现实世界的方法是什么?那个问题是REST API和REST Web服务之间有什么区别吗?
答案 0 :(得分:3)
如果我要编写一个私有的RESTful API,我可能不会费心去做RESTful。
通过将REST API设为私有,您将失去这种架构风格的主要优势之一。实现这样的API很困难,但作为回报,您可以轻松获得可扩展性,并且API的消费者能够编写因未来更改而不可能破坏的客户端(只要您遵循HATEOAS和使用明确定义的格式。)
如果您可以选择控制服务及其所有客户端,那么放弃RESTful架构所施加的一些限制可能实际上是一个好主意。
只要您坚持使用协议语义,您就可以使用通过HTTP提供JSON的简单API。
换句话说,您可以实现满足2级API要求的服务,如Richardson Maturity Model
所述因为您不会充分利用Level 3 API提供的优势,更不用说实际的RESTful API了,实现它可能只是证明了不必要的努力。
我在my answer to a programmers.stackexchange question中对这些设计注意事项进行了更全面的描述。你也可以在那里找到一些有用的参考资料。
答案 1 :(得分:0)
您可以通过要求某些授权/身份验证来使API私有(例如,简单的API密钥)。
REST API与REST Web服务?
好吧,就这么说吧。 REST Web服务具有 REST API。 Web服务是一组按目的联合的API。