Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 1.55 KB

add_root_key.md

File metadata and controls

62 lines (50 loc) · 1.55 KB

Back to Guides

How to add root key

Add the root key to your API is quite simple with ActiveModelSerializers. The Adapter is what determines the format of your JSON response. The default adapter is the Attributes which doesn't have the root key, so your response is something similar to:

{
  "id": 1,
  "title": "Awesome Post Tile",
  "content": "Post content"
}

In order to add the root key you need to use the JSON Adapter, you can change this in an initializer:

ActiveModelSerializers.config.adapter = :json

Note that adapter configuration has no effect on a serializer that is called directly, e.g. in a serializer unit test. Instead, something like UserSerializer.new(user).as_json will always behave as if the adapter were the 'Attributes' adapter. See Outside Controller Usage for more details on recommended usage.

You can also specify a class as adapter, as long as it complies with the ActiveModelSerializers adapters interface. It will add the root key to all your serialized endpoints.

ex:

{
  "post": {
    "id": 1,
    "title": "Awesome Post Tile",
    "content": "Post content"
  }
}

or if it returns a collection:

{
  "posts": [
    {
      "id": 1,
      "title": "Awesome Post Tile",
      "content": "Post content"
    },
    {
      "id": 2,
      "title": "Another Post Tile",
      "content": "Another post content"
    }
  ]
}

There are several ways to specify root when using the JSON adapter.