Hi 大家好,我又来啦。 这次是想讨论一下接口设计的功能粒度。
假设我有两张表,books
图书概要表以及book_details
图书详情表。
例如有这么一个需求:录入图书,如果是外文书,可能只录入概要就可以了,如果是中文书,还要录入图书详情。
那我是应该提供两个接口:POST /books
以及POST /book_details
,让接口调用方根据自己的需求调用,
还是应该提供一个接口: POST /books_instore
呢?
我仔细想了想,似乎两种做法都有道理: 第一种做法符合 REST 风格,接口作用单一,逻辑上比较清晰。 第二种做法呢,减少了接口调用方的工作,并且只有一次请求,减少了网络传输的时间。
那万一有更复杂的情况,如果一个需求,既包含了 POST 创建,又包含了 PUT 更新操作,还可能会有 DELETE,是应该用一个接口实现它呢,还是三个接口呢?
想请问一下社区里有经验的同学,在接口的功能设计上,粒度的粗细是如何控制的。
还是说,这种情况是需要根据实际业务情况来看的。 请社区里的同学分享下自己的接口设计经验。