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

105 天前
 cjlalalala
我们的场景是后端给前端暴露发布帖子的 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 的提供需要是从代码层面上就有清晰语义的,这种字段的说明比较难以让人理解。

想问问大佬们怎么看待这个问题,有什么理据能够支撑各自的观点?
1926 次点击
所在节点    Web Dev
16 条回复
summerwar
105 天前
为啥不让他传递一个 json 对象过去,这样不是更方便
musi
105 天前
后端是不会对前端的内容进行校验吗?
cenbiq
105 天前
从更标准的开发方式来说,肯定是接口算接口的,存储算存储的
zangbianxuegu
105 天前
是的,API 应该尽量语义化,后端存储自己处理就好。虽然这样也能做,但是 content 实际上是 title + content 。而且,返回数据怎么处理,也是返回一整个 content 吗?
bfdh
105 天前
如果 title 内容也有\n 咋办?
wu00
105 天前
发到开发群,要脸的后端自然会站出来指正
aababc
105 天前
我要是弄出来这么个东西也挺不好意思给别人说是我设计的
simple233
105 天前
你让后端来这留个言,我想看看脑回路
gaobh
105 天前
SEO 不都是分开的么……
ZJamss
105 天前
这个实习生大一吗...
patrickpu
105 天前
把这个不听话的实习生开了
cxjava
105 天前
前后端都有问题,一起挨打
niubiman
105 天前
URI 都用/feed-flow/publish-post 了, 还在乎那么做什么, 接口定义的很不规范
davin
105 天前
测试的时候,多输入几个\n 就都老实了😄另外,可能会影响以后的数据统计
IvanLi127
105 天前
后端只要说他爸是谁就行了,前端只能听天由命了。这前端太惨了,默哀
gerefoxing
104 天前
额 /publish-post

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1113200

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX