V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cjlalalala
V2EX  ›  Web Dev

API 请求体字段定义询问各位大佬。

  •  
  •   cjlalalala · 1 天前 · 703 次点击
    我们的场景是后端给前端暴露发布帖子的 api ,界面上是有明确的标题跟内容的 UI 区分的。

    公司里的实习生在给前端暴露 api 的时候,给前端暴露了下述的 api:
    const response: AxiosResponse<FeedFlow.PublishPostResponse> = await this.apiClient.post('/feed-flow/publish-post', {
    authorId: request.authorId,
    content: `${request.title}\n${request.content}`,
    });

    后端同学的存储格式是把 title 跟 content 正文存储在一个一段里面,按行分割。前端同学觉得要在 api 的层面上把 title 跟 content 通过字符拼接再赋值给 content 字段很不自然。后端同学觉得没什么所谓,觉得数据库里面定的就是这个字段,直接给他拼好就行了。

    我的看法是,api 的提供需要是从代码层面上就有清晰语义的,这种字段的说明比较难以让人理解。

    想问问大佬们怎么看待这个问题,有什么理据能够支撑各自的观点?
    16 条回复    2025-02-22 11:51:36 +08:00
    summerwar
        1
    summerwar  
       1 天前
    为啥不让他传递一个 json 对象过去,这样不是更方便
    musi
        2
    musi  
       1 天前
    后端是不会对前端的内容进行校验吗?
    cenbiq
        3
    cenbiq  
       1 天前
    从更标准的开发方式来说,肯定是接口算接口的,存储算存储的
    zangbianxuegu
        4
    zangbianxuegu  
       1 天前
    是的,API 应该尽量语义化,后端存储自己处理就好。虽然这样也能做,但是 content 实际上是 title + content 。而且,返回数据怎么处理,也是返回一整个 content 吗?
    bfdh
        5
    bfdh  
       23 小时 57 分钟前
    如果 title 内容也有\n 咋办?
    wu00
        6
    wu00  
       23 小时 52 分钟前
    发到开发群,要脸的后端自然会站出来指正
    aababc
        7
    aababc  
       23 小时 50 分钟前
    我要是弄出来这么个东西也挺不好意思给别人说是我设计的
    simple233
        8
    simple233  
       23 小时 41 分钟前
    你让后端来这留个言,我想看看脑回路
    gaobh
        9
    gaobh  
       23 小时 39 分钟前
    SEO 不都是分开的么……
    ZJamss
        10
    ZJamss  
       23 小时 36 分钟前
    这个实习生大一吗...
    patrickpu
        11
    patrickpu  
       23 小时 30 分钟前
    把这个不听话的实习生开了
    cxjava
        12
    cxjava  
       23 小时 22 分钟前
    前后端都有问题,一起挨打
    niubiman
        13
    niubiman  
       23 小时 4 分钟前
    URI 都用/feed-flow/publish-post 了, 还在乎那么做什么, 接口定义的很不规范
    davin
        14
    davin  
       22 小时 59 分钟前
    测试的时候,多输入几个\n 就都老实了😄另外,可能会影响以后的数据统计
    IvanLi127
        15
    IvanLi127  
       15 小时 15 分钟前
    后端只要说他爸是谁就行了,前端只能听天由命了。这前端太惨了,默哀
    gerefoxing
        16
    gerefoxing  
       3 小时 57 分钟前
    额 /publish-post
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2868 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:49 · PVG 15:49 · LAX 23:49 · JFK 02:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.