skip to navigation
skip to content

falkolab.ext3.direct 1.1.0

Zope3 Ext.Direct - Server-side Stack for ExtJS 3.

Zope3 Ext.Direct - Server-side Stack for ExtJS 3.

How do I use it ?

Let’s register api and views:

>>> from zope.configuration import xmlconfig
>>> context = xmlconfig.string("""
... <configure
...     xmlns="http://namespaces.zope.org/zope"
...     xmlns:extdirect="http://namespaces.zope.org/extdirect"
...     >
...   <include package="falkolab.ext3.direct" file="meta.zcml" />
...
...   <extdirect:api
...       for="zope.app.folder.interfaces.IFolder"
...       namespace = "my.app"
...       />
...
...   <extdirect:view
...       for="zope.app.folder.interfaces.IFolder"
...       class="falkolab.ext3.direct.testing.AlbumList"
...       permission="zope.ManageContent"
...       name="albumlist"
...       />
...
...   <extdirect:view
...       for="zope.app.folder.interfaces.IFolder"
...       class="falkolab.ext3.direct.testing.Contact"
...       permission="zope.ManageContent"
...       />
... </configure>
... """)

Direct API:

>>> print http(r"""
... GET /@@directapi HTTP/1.1
... Authorization: Basic bWdyOm1ncnB3
... """)
HTTP/1.1 200 Ok
Cache-Control: no-cache
Content-Length: ...
Content-Type: text/javascript;charset=utf-8
Expires: ...
Pragma: no-cache
<BLANKLINE>
Ext.namespace('my.app');
my.app.REMOTING_API={"url": "http://localhost/@@directrouter", "namespace": "my.app", "type": "remoting", "actions": {"Contact": [{"name": "getInfo", "len": 1}], "albumlist": [{"formHandler": true, "name": "add", "len": 0}, {"name": "getAll", "len": 0}]}};

Auto add provider :

>>> print http(r"""
... GET /@@directapi?add_provider HTTP/1.1
... Authorization: Basic bWdyOm1ncnB3
... """)
HTTP/1.1 200 Ok
Cache-Control: no-cache
Content-Length: ...
Content-Type: text/javascript;charset=utf-8
Expires: ...
Pragma: no-cache
<BLANKLINE>
Ext.namespace('my.app');
my.app.REMOTING_API={"url": "http://localhost/@@directrouter", "namespace": "my.app", "type": "remoting", "actions": {"Contact": [{"name": "getInfo", "len": 1}], "albumlist": [{"formHandler": true, "name": "add", "len": 0}, {"name": "getAll", "len": 0}]}};
Ext.Direct.addProvider(my.app.REMOTING_API);

And Direct Request hanling (for addition see ROUTER.TXT):

>>> print http(r"""
... POST /@@directrouter HTTP/1.1
... Authorization: Basic bWdyOm1ncnB3
... Content-Length: 71
... Content-Type: application/json; charset=UTF-8
... Referer: http://localhost/
...
... {"action":"albumlist","method":"getAll","data":[],"type":"rpc","tid":1}""")
HTTP/1.1 200 Ok
Content-Length: 89
Content-Type: text/javascript
<BLANKLINE>
{"action": "albumlist", "tid": 1, "type": "rpc", "method": "getAll", "result": [1, 2, 3]}

CHANGES

1.1.0 (2010-12-23)

  • Changes to support python 2.6

1.0.1 (2010-11-10)

  • Removed the dependencies on zope.app.intid
  • Changes to support zope.componetnt>=3.6.0
  • Added skipkeys=True for simplejson encoder to prevent raising a TypeError

1.0.0a (2009-08-20)

  • Initial release.
 
File Type Py Version Uploaded on Size
falkolab.ext3.direct-1.1.0.tar.gz (md5) Source 2011-09-26 17KB