Skip to main content

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

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

falkolab.ext3.direct-1.1.0.tar.gz (18.1 kB view details)

Uploaded Source

File details

Details for the file falkolab.ext3.direct-1.1.0.tar.gz.

File metadata

File hashes

Hashes for falkolab.ext3.direct-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b6491065566bc151884a289d3fe427cbf354a9783214a387da14f09302b4694c
MD5 165af6372c88edcb7b9b9b36dceeac26
BLAKE2b-256 b7b1dc22fcac7097c1eaad7bbabd3083fe8a6829d72b1ecdff01869312466503

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page