繁体   English   中英

Django:项目使用REST API中的数据,如何在此系统中使用外部应用程序?

[英]Django : Project consuming data from REST API, How to use external apps in this system?

我有一个使用REST API后端数据的Django Web前端。 甚至用户都是在后端创建和创建的。

我的问题 :

  • 如何在此系统中使用严重依赖Django 模型/ ORM的第三方应用程序?
  • 是否可以在REST API资源和ORM之间建立某种桥梁?

如何解决这个问题?

更新资料

在这种情况下, DRY负责人似乎失败了。

自从最初发布此问题以来,事情可能发生了变化。 现在,关于这个主题,在StackOverflow上有几个有趣的相关问题。

按照此答案中的说明编写自己的解决方案,您可以创建一个外部服务层(aka services.py ),并在其中编写访问外部资源的逻辑。 您的视图将占用这一层,并采取适当的措施。 还有其他问题可以帮助您如何将信息从django视图接收到的原始请求中传递给外部服务,例如thisthis。

还有一个django应用程序, 如此答案中所述 ,考虑了这种情况。 django-roa使用面向资源的体系结构范例来解决此问题。

我在一个新的电子商务项目中面临着类似的障碍。 该项目是成熟的商店管理软件(CMS + ERP + CRM)的前端。 它需要使用主产品数据库,但是具有自己的产品评论,评分等条目。

最初的想法是制作master数据库的缓存副本。 该网站将从高速缓存的项目的快速加载时间中受益,但是实现起来并不容易。

经过一些考虑,选择的方法是从管理程序更新网站的数据库。 这样,网站的副本将始终是正确的,并且大多数实现无需担心REST服务(它仍将用于用户注册,发货跟踪等)。

在您的情况下,如果服务无法远程更新您自己的数据库,则需要提出一种机制,该机制可让您像常规模型一样引用REST资源,并将其缓存在后台。

重要说明:研究一种确保高速缓存始终正确(非脏)的方法...

我不确定我是否完全理解您的问题或要求。 按照我的阅读方式,您有一个主要的后端,它基本上是一个黑匣子,并且您想在项目中使用一些使用Django ORM的第三方应用程序。

我不清楚为什么需要在两个数据存储之间进行双向同步。 项目的用户将从您的主要后端以及项目的ORM返回数据。

由于您担心要在主后端中保存“ ORM”数据,因此您可能会考虑创建一个事务ORM,该事务将在ORM数据更新时随时触发,从而可以序列化保存的结构并将其传输到REST API。 。 我认为该REST API能够接受任意数据结构吗?

您可能至少要使用某种形式的中间件 ,也许还需要一个实用程序模块/类来帮助形成“桥梁”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM