如果我要忠实于“单一职责原则”,从外部API获取数据的最优雅的方法是什么?应该在哪里/什么时候制作?
假设我有一个POST /foo
端点,该端点在被调用后应以某种方式触发对外部API的调用,并从其获取/保存本地数据库中的一些数据。
我应该在视图中添加呼叫吗?还是模型?
答案 0 :(得分:0)
我通常将所有外部API调用添加到专用的services.py
模块(与您打算将结果保存到models.py
应用程序中的common
相同的级别,如果现有的任何一个逻辑上不相关)
在该模块内,您可以像MyExtarnalService
这样使用名为smth的类,并添加获取,发布,删除等所有必需的方法,就像使用drf api视图一样。
还记得通过定义自定义错误异常类来正确处理异常(超时,连接错误,错误响应代码)。