V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yannxia
V2EX  ›  程序员

关于前后端分离的界限

  •  
  •   yannxia · 2015-12-03 14:07:03 +08:00 · 3442 次点击
    这是一个创建于 3309 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我司代码前端由 angularjs 编写,后端是 Java , Java 暴露出 API 直接供前端调用,
    现在有问题, API 的边界是在哪里,是要完全的展示出数据,还是方便前端?

    举个例子:
    Web 端和 APP 端,比如有个 Product 产品
    比如有 ABCDE 一系列属性,现在产品有一个需求,要求 A 如果状态为 XXX , B 的值就为 YYY
    此时,因为 APP 的审核过程很长, APP 要求后台修改, Web 因为上线方便,就自己改了,那么问题就出现了
    这个地方到底是由前端负责还是 API 负责?
    9 条回复    2015-12-03 23:47:01 +08:00
    domty
        1
    domty  
       2015-12-03 14:15:45 +08:00
    服务器端既要为 web 端负责,又要为 app 端负责啊。
    所以你改了 app 就又要改 web 端。
    如果这个需求是同时针对两个客户端的话,改服务器端或者客户端都行。
    如果只是针对单一客户端的话,该这个客户端的。

    不过考虑到审核问题,我觉得你的选择还是挺合理的。
    domty
        2
    domty  
       2015-12-03 14:17:44 +08:00
    @domty
    还有就是可能需要考虑到对服务器端的性能是否有影响,有影响的话尽量放到客户端上去搞。
    还有就是数据安全性。
    moro
        3
    moro  
       2015-12-03 14:19:16 +08:00
    哪边成本低,就哪边改。
    zhouquanbest
        4
    zhouquanbest  
       2015-12-03 14:20:59 +08:00
    把前端当 app 写
    yimity
        5
    yimity  
       2015-12-03 15:59:44 +08:00
    你们 API 没有版本的吗?
    fds
        6
    fds  
       2015-12-03 16:16:11 +08:00
    虽然分前端后端,但是工作其实是没有界限的,能把需求完成就行。
    像你这种情况可以单独对特定版本的 app 返回特定值。如果无法查到版本,那么可以让 web 端加个版本号作为参数,有这个参数给正确值,没有给修改值。
    iyangyuan
        7
    iyangyuan  
       2015-12-03 16:28:40 +08:00 via iPhone
    对于楼主的问题,很明显这是服务端的职责
    另外,前后端分离和 angularjs 有啥关系?
    Lpl
        8
    Lpl  
       2015-12-03 20:52:45 +08:00 via Android
    前后端分离不应该是共用一套数据库,但是是两套项目么?
    loshine1992
        9
    loshine1992  
       2015-12-03 23:47:01 +08:00
    1. 统一风格比如采用 restful 风格的 API ,减少后端频繁修改 API 的可能
    2. API 可以采取不同的版本供不同版本的客户端使用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3246 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:22 · PVG 20:22 · LAX 04:22 · JFK 07:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.