我正在研究一个实验性网站(可通过网络浏览器访问),它将作为一个安静的界面(一个子系统)的前端.该网站将充当用户和restful接口之间的接口,因为它将对几乎所有数据库操作的restful接口发出http请求.可能使用openid进行身份验证,数据库操作的授权将通过oAuth完成.
出于好奇,这是一个可行的解决方案还是我应该开发两个并行访问数据库的系统(即网站有自己的数据访问逻辑,而restful接口有另一个数据访问逻辑)?有什么利弊/如果我坚持做这种方式缺点(这只是一个实验项目我学习的东西怎么样OpenID和以任何现实生活中的OAuth的工作),此外,还有将是产生更多的数据库查询和HTTP请求每笔交易?
你的概念听起来很可行.我会说你会从这种方法中获得一些相当不错的胜利.对于初学者,您将获得大量的代码重用,因为您将能够将其他前端放在RESTful服务之上.此外,您将能够相对轻松地对此体系结构进行单元测试.最后,您将能够让第三方开发人员访问您使用的相同API(可能受到一些限制),这对于吸引客户和开发人员到您的平台来说将是一个巨大的胜利.
在不利方面,根据您的后端结构,您可能会遇到标准的粒度问题.太多的粒度,你最终会为很少量的数据建立大量的连接.太少了,在某些情况下你会得到比你需要的更多的数据.至于安全性,您应该能够锁定后端,以便只能在特定条件下发出请求:请求包含授权令牌,api密钥等.