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

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

  •  
  •   cjlalalala · 1 天前 · 718 次点击
    我们的场景是后端给前端暴露发布帖子的 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  
       1 天前
    如果 title 内容也有\n 咋办?
    wu00
        6
    wu00  
       1 天前
    发到开发群,要脸的后端自然会站出来指正
    aababc
        7
    aababc  
       1 天前
    我要是弄出来这么个东西也挺不好意思给别人说是我设计的
    simple233
        8
    simple233  
       1 天前
    你让后端来这留个言,我想看看脑回路
    gaobh
        9
    gaobh  
       1 天前
    SEO 不都是分开的么……
    ZJamss
        10
    ZJamss  
       1 天前
    这个实习生大一吗...
    patrickpu
        11
    patrickpu  
       1 天前
    把这个不听话的实习生开了
    cxjava
        12
    cxjava  
       1 天前
    前后端都有问题,一起挨打
    niubiman
        13
    niubiman  
       1 天前
    URI 都用/feed-flow/publish-post 了, 还在乎那么做什么, 接口定义的很不规范
    davin
        14
    davin  
       1 天前
    测试的时候,多输入几个\n 就都老实了😄另外,可能会影响以后的数据统计
    IvanLi127
        15
    IvanLi127  
       16 小时 26 分钟前
    后端只要说他爸是谁就行了,前端只能听天由命了。这前端太惨了,默哀
    gerefoxing
        16
    gerefoxing  
       5 小时 8 分钟前
    额 /publish-post
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2899 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.