Drupal 7:显示来自Web服务的数据

时间:2012-09-28 14:50:27

标签: web-services drupal-7

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

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

这个问题是它都是在Drupal之外完成的,我们无法使用Drupal来管理任何这些内容。因此,我们有许多带有自定义代码的模块,可以创建表单,预填表单,绑定到Drupal上的用户帐户等等。

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

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

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

2 个答案:

答案 0 :(得分:0)

嗯,我想你可以开始使用自定义模块,创建一个hook_menu()和一个URL来解析"您通过该服务获得的信息。创建将存储您的数据的额外表 - 如果它太大,可能会序列化。使用Schema模块正确创建 模块中的mymodule.install文件。

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

从那里开始,我想你可以玩好所有不错的drupal hooks来显示和操纵你的数据

答案 1 :(得分:0)

如果我理解你的问题,你的重构不应该是在drupal中存储数据。 我需要在几个月前建立一个位置服务网站,并且需要使用Google Maps API来填充丢失的地理位置数据。

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

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

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