【问题标题】:Drupal 7: Displaying data from a web serviceDrupal 7:显示来自 Web 服务的数据
【发布时间】:2012-09-28 14:50:26
【问题描述】:

我正在使用 Drupal 7,我需要从 Web 服务中检索数据。由于规定,这些数据不能存储在 Drupal 数据库中。检索这些数据的最佳做法是什么:使用 Java、Drupal 实体或存储在令牌中?

我们目前正在根据存储在数据库中的 ID 进行调用,并显示来自与该 ID 关联的 Web 服务的数据。

问题在于这一切都是在 Drupal 之外完成的,我们无法使用 Drupal 来管理任何此类内容。因此,我们有许多带有自定义代码的模块来完成从创建表单、预填充表单、绑定到 Drupal 上的用户帐户等所有工作。

我们正处于可以完全重构其工作方式的地步。

您对我们如何改进这一点有什么建议吗?

注意:我们需要存储的数据量会很大。我在想也许我们可以围绕 Web 服务数据创建一个实体,然后通过添加标记作为默认值来显示与字段相关的数据。存储在数据库中的 ID 会改变通过令牌显示的内容。

【问题讨论】:

    标签: web-services drupal-7


    【解决方案1】:

    我想你当然可以从自定义模块开始,创建一个 hook_menu() 和一个 url 来“解析”你通过服务获得的信息。创建额外的表来存储你的数据 - 如果它太大了。使用 Schema 模块正确创建 模块中的 mymodule.install 文件。

    它是 XML 服务吗?使用 cURL ,在此 menu() 的回调中使用 db_query 将数据存储在表中。

    我想你可以从那里玩弄所有漂亮的drupal hooks 来显示和操作你的数据

    【讨论】:

      【解决方案2】:

      如果我正确理解您的问题,您的重构不应该是在 drupal 中存储数据。 几个月前我需要制作一个定位服务站点,并且需要使用 Google Maps API 来填充缺失的地理位置数据。

      这样的结构怎么样: 您使用普通的 drupal 节点和用户制作表单和数据(用户、节点类型等)。然后,使用 hook_node_insert、hook_node_update 和 hook_node_load,您可以强制 drupal 向其他服务提交或检索信息。 hook_node_presave 在将用户输入保存到drupal数据库之前清除用户输入很有用(注意插入钩子将在presave之后调用。)。

      您仍然可以使用 drupal 来创建表单、存储必要的数据等。

      另请注意,视图模块不适用于此功能。检查查看数据源模块。

      【讨论】:

        猜你喜欢
        • 2016-08-04
        • 1970-01-01
        • 2012-08-24
        • 2013-04-03
        • 2012-04-12
        • 1970-01-01
        • 2018-07-23
        • 1970-01-01
        • 2015-09-18
        相关资源
        最近更新 更多