一、OAuth协议
OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法。
一个典型的例子是某打印服务提供商printer.example.com(消费方),希望在无须用户提供其照片存储站点密码的情况下,访问用户储存在photos.example.net(服务提供方)上的个人照片。
OAuth不强求一个特定的用户接口或操作模式,也不限定服务提供方如何验证用户,特别适合认证证书对消费方不可用的情况,例如OpenID。
OAuth致力于为托管web服务认证提供统一的体验和实现,形成一个社区驱动的协议。OAuth构建于已被多个站点独立实现的已有协议和最佳化实践之上,是一个被大小服务提供者所支持、并为应用开发者和用户增进持续性和可信度的开放标准。
二、REST
即REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
REST最初是由Roy Fielding在2000年他的博士论文中提出来的一种评价软件体系结构(Software Architecture)的方法,后来人们人为该方法中包含了一组指导软件体结构设计的原则,体现了一种软件体系结构风格(Software Architecture Style)。现在人们认为:REST是一组设计原则,体现了一种软件体系结构风格。从实质上看,REST不是一个具体的体系结构。按照REST原则设计的软件、体系结构,通常被称为“REST式的”(RESTful)。REST的核心包括如下几点:
(1)REST中的一切实体皆为资源,资源由URI来指定。
(2)对资源的操作包括获取、创建、修改和删除资源。
(3)通过操作资源的表现形式来操作资源。
(4)资源的表现形式可以是任何格式。如在Web应用中它可以是XML或者HTML,这取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。
OpenAPI项目的设计将参考OAuth协议、REST原则,因为初次进入这个领域,很多地方理解不到位,还望各位大佬多提意见,一起探讨。。