Entity Normalization Example

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"
  }
}
Supporting organizations: 

Project information

Releases