entity_normalization
1 sites
Security covered
This module makes it really easy to normalize the nodes in a more useful way than Drupal does by default. You can define the output of each entity type (like nodes, users, terms, etc.) per bundle using YAML files instead of creating everything in code.
Some of the key features are:
- Define output in readable YAML files.
- Extend definitions: create basic and bundle specific definitions.
- Different definitions per normalization format.
- Combine fields in groups without writing code.
- Add custom data to the output using 'pseudo' fields.
- Easy chaining of simple normalizers.
Configuration
Use RestUI (or code) to enable the JSON (or another) output format for content so you can fetch nodes using a url like /node/1?_format=json.
After this, you can configure the JSON output of entities using YAML files in the
root of your module using the pattern:
<module_name>.entity_normalization.yml
Example
user.base:
type: user
bundle: user
fields:
uid:
name: id
name:
article.base:
type: node
bundle: [article]
fields:
nid:
name: id
url:
type: pseudo
normalizer: entity_url.normalizer
title:
uid:
name: author
This definition will give the following output when calling "/article/1234/my-title.html?_format=json":
{
"id": 1234,
"url": "/article/1234/my-title.html",
"title": "My Title",
"author": {
"id": 1,
"name": "Administrator"
}
}