【发布时间】:2019-01-10 01:06:47
【问题描述】:
与一位同事(前端)讨论了应该由谁负责处理复杂性,但我们并没有真正得出结论。
主要思想:处理复杂性应该由谁来负责 - 后端应该有额外的更复杂的端点来组合多个简单的现有端点,还是客户端(前端)应该多次调用简单的端点?
几个例子:
API 密钥再生
从我的角度来看 - 这很简单 - 有一个端点可以删除一个密钥并创建一个密钥,客户端应该只调用这 2 个,特别是因为有一个想法可以扩展为每个最终用户支持多个密钥。
从同事的角度来看 - 应该有一个端点将这两个操作合二为一,因为如果第二个操作(添加密钥)失败,则更容易还原更改。
其他例子——当用户注册时,我们为他创建了一些嵌套对象,比如
Parent
⮑Child
⮑GrandChild
我的想法又是 - CRUD 操作的简单端点并将它们链接起来(3 次调用),如果其中一个失败,我的同事对处理失败有同样的看法。
【问题讨论】:
-
简而言之,假设您的端点清晰、面向资源且简单,那么您所指的复杂性应该在前端处理。处理异常,这就是应用程序在与外部或内部服务集成时应该做的事情。您的后端应该返回有意义的错误代码和消息。只要您有诸如创建或删除 API 密钥之类的操作,前端就可以在需要时调用两者或更多。
标签: rest architecture