我正在建设一个Drupal 8网站和新的树枝模板引擎。对于一种特定的内容类型,我想调用一个外部restful,并将一些返回的数据呈现为小枝模板中的字段。
我有一个内部id要调用API,我想嵌入到模板中:
这是很容易用树枝和drupal 8做的吗?作为第二个问题,这安全吗?
这个阶段的替代方法是编写小的Drupal 8模块,但是由于页面上没有用户输入,只是从返回的api调用进行呈现,所以我认为将所有内容放在一个地方会更容易。
发布于 2016-06-10 14:57:22
在Drupal 7中,将任意的PHP放入模板是可能的,但设计很差。在Drupal 8中,这是很难故意做的。您不应该尝试在Twig文件中执行任意PHP,也不应该在处理请求的后期进行远程API调用。
您应该调用API并在到达小枝之前收集数据。您应该创建一个自定义模块,该模块处理API交互,并将响应放置在字段、块或其他结构中,以便在适当的上下文中呈现(通常,自定义块可以很好地处理这种情况,但哪种方法最有意义取决于您的项目)。您还应该记住,任何需要远程API调用的页面都可能很慢,除非该API调用非常简单和非常快。BigPipe模块可以帮助您解决这些速度问题,但需要额外的学习曲线。
如果希望浏览器处理API调用,则需要创建一个div (或类似的标记)来放置结果,并将JavaScript附加到结构中,并在大多数页面加载完成后进行实际的API调用。
至于安全:它和你做的一样安全。Drupal将提供一些帮助,以避免最常见的安全错误,但您仍然可以做一些会使其不安全的事情(比如与不受信任的第三方共享数据,或者假设响应数据始终是安全的)。
https://stackoverflow.com/questions/37716934
复制相似问题