Plone.restapi and custom JSONSerializer dont work for Interface IDexterityContent

I have register a custom adpater

<adapter factory=".serializer.CustomSerializeToJson" />

the adpater should add the fullname of creator to the JSON:

@adapter(IDexterityContent, IMyAddOnLayer)
@implementer(ISerializeToJson)
class CustomSerializeToJson(SerializeToJson):
  def __call__(self, version=None, include_items=True):
        
      result = super(CustomSerializeToJson, self).__call__(
          version=version, include_items=include_items
      )
      result["creatornames"] = []
      for creator in result["creators"]:
          fullname = creator_name(creator)
          result["creatornames"].append(fullname)
      
      return result

The Item itself is a folderish News Item:

# -*- coding: utf-8 -*-
from plone.app.contenttypes.interfaces import INewsItem as INewsItemOriginal
from plone.dexterity.content import Container
from zope.interface import implementer

class INewsItem(INewsItemOriginal):
    """Folderish News"""

@implementer(INewsItem)
class NewsItem(Container):
    """Convenience subclass for ``News Item`` portal type"""

The adapter doesn't work for IDexterityContent, but for IDexterityContainer. I would use this adapter for Items and Containers both. I wonder me because plone.dexterity subclassing Item and Container from IDexterityContent.

class IDexterityItem(IDexterityContent):
    """Marker interface applied to dexterity-managed non-folderish objects"""


class IDexterityContainer(IDexterityContent):
    """Marker interface applied to dexterity-managed folderish objects"""

Any hints?

Not an expert in detail answer here, more heuristics: if the Dexterity part is correct and lets assume that is sort of battle tested, then looking at your code the major other reason the adapter doesn’t match can be because of the IAddonLayer interface on the request missing in some cases

Plone Foundation Code of Conduct