请问一下朋友们的项目规划 [ 2.0 版本 ]
如题,大家好,有点疑问想请教大家。
在移动网络的今天,web应用已经不是单纯的一个站点这么简单了。
一个项目做规划的时候,一般都会考虑到 web站点、移动客户端(IOS/Andriod)、微信易信等第三方接入。
在现今的网络环境下,大家在用yii构建应用的时候都是怎么考虑呢?
我有个想法,请大家指正。
以 yii2 高级模板为基础, 开发后台、前台、api。三个月app
但前后台所有都不直接操作数据库之类的,全部使用api的接口,进行操作。
之所以这样想,是因为考虑得到移动客户端肯定是以api为接口的,微信易信等,虽然稍稍不同,但实际的业务逻辑,数据逻辑都是一样的。 这样的话。
整个项目的 mvc
m根据安全和敏感度 在不同的应用中覆盖不同的字段,或基于ar进行数据库读写等等操作。
c全部在api部分完成,减少了同一个类、方法或者相似的类、方法的耦合度。
v根据实际情况 只去管选择 前端的实现方式即可。 (web、移动客户端、微信等等,)
不知道这种想法是不是有很多坑,还请大家分享下经验。谢谢。
共 4 个回答
-
所有的数据库操作都通过API来进行,显然是一个不可行的方案。
API往往是提供一个通用的操作入口,接收一定规则的参数,作相应的处理,再响应结果
在实际的开发中,大部分的数据库操作,并非都是通用的,对于这些简单,零散,多变的操作即实在相同功能下也存在很大差异性。
API应当是以功能为单位建立,具有一定的通用性。和数据库操作没必然联系,它只是把一段运算过程封装以供多方调用。
试想一下,一个简单的SQL语句都用多少种形式,API封装的过来吗,每次访问API就得建立一次HTTP请求,值得吗,每次客户端有需求变更,API服务都得做相应调整,不累呀, -
看似美好,实际上不大容易实现,你的API做不做身份认证,一旦做身份认证,每个API的性能下降一部分,不做的话你的数据几乎没有安全性可言。
你的API实际上走了下面这个路径:
用户请求操作--》前端YII处理页面逻辑--》向API发起请求--》API层再通过YII框架去操作数据并返回--》前端YII处理API返回数据--》前端YII通知用户。所以,你的这个架构的问题在于,多了一层YII的框架的性能损耗,还多了一层发起网络请求的性能损耗,还多了一层解析网络请求的性能损耗。
看似很美,实际上比较鸡肋,小项目折腾自己,大项目你的请求冗余会很高,你的硬件投入会很大,另外API的身份认证也是很复杂的,无论你是通过OAUTH还是别的方式。
辰枫夜雨 觉得很赞
xjdata
最后登录:2024-05-05
在线时长:112小时38分
- 粉丝23
- 金钱14169
- 威望75
- 积分16039