【发布时间】:2018-01-22 08:24:18
【问题描述】:
所以我正在构建一个以 Drupal 作为其后端和一个 Angular 前端的网站。我在 Drupal 中创建各种内容类型,然后通过 JSON 视图(或者换句话说,RESTful API)公开这些内容。然而,Drupal 仍然为所有内容公开一个 HTML 视图。我希望禁用它,因为它对我没有用,而且我不希望它被意外发现甚至被编入索引。
是否有一种简单的方法可以禁用所有内容的 HTML 视图?
【问题讨论】:
所以我正在构建一个以 Drupal 作为其后端和一个 Angular 前端的网站。我在 Drupal 中创建各种内容类型,然后通过 JSON 视图(或者换句话说,RESTful API)公开这些内容。然而,Drupal 仍然为所有内容公开一个 HTML 视图。我希望禁用它,因为它对我没有用,而且我不希望它被意外发现甚至被编入索引。
是否有一种简单的方法可以禁用所有内容的 HTML 视图?
【问题讨论】:
hook_entity_view 并从那里阻止访问或更改渲染可能是一种解决方案
【讨论】:
让您的网络服务器根据发送的内容类型拒绝。我相信 nginx 有 $sent_http_content_type 用于此目的。
或者,编写一个订阅KernelEvents::RESPONSE 的事件订阅者,如果响应不是ResourceResponseInterface,则抛出AccessDeniedHttpException。
【讨论】: