2015-03-31 12:01:38 3286次浏览 4条回答 0 悬赏 50 金钱

如题,大家好,有点疑问想请教大家。

在移动网络的今天,web应用已经不是单纯的一个站点这么简单了。
一个项目做规划的时候,一般都会考虑到 web站点、移动客户端(IOS/Andriod)、微信易信等第三方接入。
在现今的网络环境下,大家在用yii构建应用的时候都是怎么考虑呢?

我有个想法,请大家指正。
以 yii2 高级模板为基础, 开发后台、前台、api。三个月app
但前后台所有都不直接操作数据库之类的,全部使用api的接口,进行操作。

之所以这样想,是因为考虑得到移动客户端肯定是以api为接口的,微信易信等,虽然稍稍不同,但实际的业务逻辑,数据逻辑都是一样的。 这样的话。

整个项目的 mvc
m根据安全和敏感度 在不同的应用中覆盖不同的字段,或基于ar进行数据库读写等等操作。
c全部在api部分完成,减少了同一个类、方法或者相似的类、方法的耦合度。
v根据实际情况 只去管选择 前端的实现方式即可。 (web、移动客户端、微信等等,)

不知道这种想法是不是有很多坑,还请大家分享下经验。谢谢。

  • 回答于 2015-03-31 12:09 举报

    想法很好 不错 都通过API模块做数据库操作是OK的一个方案

  • 回答于 2015-03-31 15:24 举报

    所有的数据库操作都通过API来进行,显然是一个不可行的方案。
    API往往是提供一个通用的操作入口,接收一定规则的参数,作相应的处理,再响应结果
    在实际的开发中,大部分的数据库操作,并非都是通用的,对于这些简单,零散,多变的操作即实在相同功能下也存在很大差异性。
    API应当是以功能为单位建立,具有一定的通用性。和数据库操作没必然联系,它只是把一段运算过程封装以供多方调用。
    试想一下,一个简单的SQL语句都用多少种形式,API封装的过来吗,每次访问API就得建立一次HTTP请求,值得吗,每次客户端有需求变更,API服务都得做相应调整,不累呀,

  • 回答于 2015-04-01 00:56 举报

    看似美好,实际上不大容易实现,你的API做不做身份认证,一旦做身份认证,每个API的性能下降一部分,不做的话你的数据几乎没有安全性可言。

    你的API实际上走了下面这个路径:
    用户请求操作--》前端YII处理页面逻辑--》向API发起请求--》API层再通过YII框架去操作数据并返回--》前端YII处理API返回数据--》前端YII通知用户。

    所以,你的这个架构的问题在于,多了一层YII的框架的性能损耗,还多了一层发起网络请求的性能损耗,还多了一层解析网络请求的性能损耗。

    看似很美,实际上比较鸡肋,小项目折腾自己,大项目你的请求冗余会很高,你的硬件投入会很大,另外API的身份认证也是很复杂的,无论你是通过OAUTH还是别的方式。

    觉得很赞
  • 回答于 2015-04-02 14:13 举报

    呼叫舰长,可以给自己点赞是不是BUG?

您需要登录后才可以回答。登录 | 立即注册
xjdata
CEO

xjdata

注册时间:2011-12-07
最后登录:2021-07-09
在线时长:112小时28分
  • 粉丝23
  • 金钱14169
  • 威望75
  • 积分16039

热门问题