hoppinger / rest_normalizations
扩展REST资源的Drupal模块
1.9.2
2022-10-29 09:17 UTC
- dev-master
- 10.x-dev
- 10.1.x-dev
- 9.x-dev
- 9.1.x-dev
- 1.9.2
- v1.9.1
- v1.5.1
- 1.5.0
- 1.4.0
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.2
- 1.0.1
- 1.0.0
- dev-bugfix/warning-for-paragraph-entity
- dev-feature/field-target-normalizer
- dev-fix/drupal-update
- dev-documentation
- dev-file_urls
- dev-language_links
This package is auto-updated.
Last update: 2024-09-08 16:44:53 UTC
README
Rest Normalizations模块用于扩展Drupal 8的默认REST API规范化。它添加了在无头架构中有用的属性,并有助于在实体中嵌入子实体。
安装
composer require hoppinger/rest_normalizations
版本兼容性
版本1.4.0及以上仅与Drupal 8.7.0及以上版本兼容,且旧版本不兼容Drupal 8.7.0及以上版本。
用法
Rest Normalization模块通过修改REST API,帮助嵌入内容中引用的实体。
例如,REST输出中的实体引用字段提供了目标_id、目标_type和URI。在某些情况下,我们需要有关引用实体的更多数据,而不仅仅是提供的数据。Rest Normalization通过覆盖默认值并将实体数据嵌入到响应中,帮助解决这个问题。
在模块目录/src中创建一个.php文件,内容如下。将<target_identifier>
替换为需要嵌入API响应的项目特定实体引用字段(例如:node-story_overview-field_featured_story
)
<target_identifiers>可以是实体引用字段、段落、文件、图片、视频、媒体、分类引用字段。
文件名必须与模块名称类似,即,ModuleNameServiceProvider.php,并且必须放置在src文件夹中。
namespace Drupal\module_name; use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\DependencyInjection\ServiceProviderBase; use Symfony\Component\DependencyInjection\Reference; class ModuleNameServiceProvider extends ServiceProviderBase { public function alter(ContainerBuilder $container) { if ($container->hasParameter('rest_normalizations.target_identifiers')) { $target_identifiers = $container->getParameter('rest_normalizations.target_identifiers'); $target_identifiers[] = <target_identifier>; #e.g., node-story_overview-field_featured_story $container->setParameter('rest_normalizations.target_identifiers', $target_identifiers); } }
默认情况下,媒体、文件和段落已作为目标标识符添加。