V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Mrkon
V2EX  ›  Python

后端接口逻辑,如何写才优雅

  •  
  •   Mrkon · 2018-09-30 12:03:43 +08:00 · 3264 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。
    对于后端接口最优雅的方式应该是:
    1.按照单个业务区分 (如 处理一个文件, 直接用户上传到处理然后返回处理结果) 的方式

    2.分为多个接口 (先上传文件, 再请求处理)的方式, 这样前端会产生多个请求

    3.其他更好解决方式

    能给我一点您们的经验吗?
    9 条回复    2018-10-07 14:13:29 +08:00
    foxyier
        1
    foxyier  
       2018-09-30 13:37:43 +08:00
    我个人倾向低耦合,具体情况看需求
    cxh116
        2
    cxh116  
       2018-09-30 13:47:25 +08:00
    我推荐方式一.

    低耦合不意味着接口要拆的很细,你可以在你后端代码内部做好封装来提高代码的高重用,而不是把复杂度扔给前端.
    跨接口的事务等逻辑处理起来比单个接口要复杂很多的.
    zorui
        3
    zorui  
       2018-09-30 13:48:28 +08:00 via Android
    graphql 了解一下。
    PythonAnswer
        4
    PythonAnswer  
       2018-09-30 13:54:28 +08:00 via iPhone
    文件巨大难以上传
    可以考虑 2
    pkoukk
        5
    pkoukk  
       2018-09-30 13:54:54 +08:00
    具体看需求。以后可能会存在用户对以前上传的文件进行处理的需求么?如果存在当然第二个合理
    Mrkon
        6
    Mrkon  
    OP
       2018-09-30 14:32:41 +08:00
    @foxyier
    @cxh116
    @zorui
    @PythonAnswer
    @pkoukk
    谢谢, 看来需求是最重要的. 文件是不大的. 一般的情况是逻辑相对不复杂我才会考虑放到一个接口的.
    saulshao
        7
    saulshao  
       2018-09-30 14:55:41 +08:00   ❤️ 1
    所有提供给别人用的东西,都要优先考虑使用者的感受,然后才是技术实现。
    写个后端接口,我觉得首先是要想别人如果要调用这个接口,应该怎么写代码。
    想清楚这个,就很容易判断该怎么做了。
    night98
        8
    night98  
       2018-09-30 22:30:14 +08:00
    1.文件上传单独一个接口,上传完成后文件信息保存到 redis 或 session 中并回传到页面
    2.页面带文件信息访问对应业务接口,业务接口访问文件服务完成业务操作,返回业务数据

    好处是文件接口不用每次新加一个需求就又要调一次,前端开发时上传文件只需要熟悉这一个接口并封装一下即可,后端开发对文件服务解耦和,日后更替时可随意切,很方便。

    缺陷就是需要调两次接口,不过一般这个不会是瓶颈部分。
    lolizeppelin
        9
    lolizeppelin  
       2018-10-07 14:13:29 +08:00 via Android
    自己写前端一段时间就知道啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5630 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 05:48 · PVG 13:48 · LAX 22:48 · JFK 01:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.