# -*- coding: utf-8 -*-
from aiohttp.web import Response
from plone.dexterity.interfaces import IDexterityContent
from plone.registry.interfaces import IRegistry
from plone.server.interfaces import IRequest
from plone.server.interfaces import IView
from zope.component import adapter
from zope.interface import implementer


@adapter(IDexterityContent, IRequest)
@implementer(IView)
class View(object):
    def __init__(self, context, request):
        self.context = context
        self.request = request
        self.registry = self.request.registry.getUtility(IRegistry)

    async def __call__(self):
        import pdb  # noqa
        pdb.set_trace()  # noqa
        return Response(text=str(self.registry))

@@ -41,17 +41,22 @@
  import 
-R
+json_r
 esponse%0A
@@ -323,16 +323,296 @@
 enter%0A%0A%0A
+def get_physical_path(context):%0A    parts = %5Bcontext.__name__%5D%0A    parent = context.__parent__%0A    while parent is not None and parent.__name__ is not None:%0A        parts.append(parent.__name__)%0A        parent = parent.__parent__%0A    parts.append('')%0A    return reversed(parts)%0A%0A%0A
 @adapter
@@ -896,104 +896,142 @@
     
-import pdb  # noqa%0A        pdb.set_trace()  # noqa%0A        return Response(text=str(self.registry)
+return json_response(%7B%0A            'context': str(self.context),%0A            'path': '/'.join(get_physical_path(self.context))%0A        %7D
 )%0A

Add example view