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 | # downloads |
|---|---|---|---|---|---|
| falkolab.ext3.direct-1.1.0.tar.gz (md5) | Source | 2011-09-26 | 17KB | 225 | |
- Author: Andrey Tkachenko
- Home Page: http://falkolab.ru/
- License: ZPL 2.1
-
Categories
- Development Status :: 5 - Production/Stable
- Environment :: Web Environment
- Framework :: Zope3
- Intended Audience :: Developers
- License :: OSI Approved :: Zope Public License
- Natural Language :: English
- Operating System :: OS Independent
- Programming Language :: Python
- Topic :: Software Development :: User Interfaces
- Package Index Owner: falko
- DOAP record: falkolab.ext3.direct-1.1.0.xml
