For an application I want to remove some levels of data from what jss's layout service returns. My end goal is to have an api endpoint that returns fields on the content items and fields on personalized datasource items. I want the json to look like the following:

{
   id: '{myId}',
   path: '/my/path',
   fields: [
      {
         name: 'field name',
         value: 'value'
      }
   ],
   content : //placeholder name
   [
      {
         id: '{myId}',
         fields: [
           {
              name: 'field name',
              value: 'value'
           }
         ]
      },
      {
         id: '{myId}',
         fields: [
           {
              name: 'field name',
              value: 'value'
           }
         ]
      }
   ]
}

Is it possible to do this with GraphQL? So far it looks like using the GraphQL fields on renderings (integrated mode) cannot affect the json returned by the layout service that is outside of a rendering. I think using that method to get the desired effect I would need to customize jss's item serializer.

If I used the connected approach is there an easier way to do this than adding a custom query that looks up personalized datasources based on a context item? It seems like the existing datasources query has a different purpose (passing in the context item's path/id gives the context item itself back).

up vote 3 down vote accepted

You would need to customize the item serializer to accomplish what you want.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.