从第三方API获取数据-Django中的单一职责原则

时间:2018-07-16 16:38:23

标签: python django django-rest-framework

如果我要忠实于“单一职责原则”,从外部API获取数据的最优雅的方法是什么?应该在哪里/什么时候制作?

假设我有一个POST /foo端点,该端点在被调用后应以某种方式触发对外部API的调用,并从其获取/保存本地数据库中的一些数据。 我应该在视图中添加呼叫吗?还是模型?

1 个答案:

答案 0 :(得分:0)

我通常将所有外部API调用添加到专用的services.py模块(与您打算将结果保存到models.py应用程序中的common相同的级别,如果现有的任何一个逻辑上不相关)

在该模块内,您可以像MyExtarnalService这样使用名为smth的类,并添加获取,发布,删除等所有必需的方法,就像使用drf api视图一样。

还记得通过定义自定义错误异常类来正确处理异常(超时,连接错误,错误响应代码)。