web2py включает поддержку pyamf. Это работает так, что вы создаете такие функции, как
def add(a,b): return a+b
и затем вы украшаете их с помощью @ service.amfrpc3 ('domain')
@service.amfrpc3('domain')
def add(a,b): return a+b
Вам не нужно перезагружать веб-сервер или делать что-либо еще. Вы просто добавляете и удаляете функции в своем файле контроллера (файл, в котором вы определяете сервисы), и сервис становится доступным или удаляется. Вы также можете выполнять ту же функцию, используя другие протоколы (xmlrpc, jsonrpc, rss, csv, xml, json), используя несколько декораторов.
@service.xmlrpc
@service.jsonrpc
@service.amfrpc3('domain')
def add(a,b): return a+b
Вам не нужно создавать экземпляр шлюза (как в других платформах. Все декорированные функции предоставляются через одно действие, которое вам не нужно писать, поскольку оно уже находится в приложении скаффолдинга (созданном для вас web2py):
def call(): return service()
Функции могут обращаться к уровню абстракции базы данных web2py (DAL) и (с некоторыми ограничениями) к механизму аутентификации web2py.
Вы можете редактировать контроллер, содержащий функцию, используя оболочку (emacs / vi / etc), но вы также можете использовать веб-среду IDE web2py (называемую «admin») и добавлять службы с помощью браузера.
Web2py включает в себя систему тикетов, поэтому легко отлаживать веб-сервисы. Любая ошибка на стороне сервера приводит к заявке. В админке есть веб-страница со списком всех билетов. Вы нажимаете на один, и он показывает код, вызвавший проблему, и полный возврат.
Вы можете импортировать и использовать любой сторонний модуль Python. У вас должен быть предварительно установлен pyamf.
Это хорошо задокументировано в главе 9 книги:
http://web2py.com/book/default/section/9/2
Приложения web2py очень просты в развертывании. Один из способов - указать и щелкнуть используя admin. Другой способ - просто скопировать файлы с одного компьютера на другой. Здесь нет метаданных, нет процедуры установки (даже для самого web2py), нет настроек, нет файлов конфигурации.
Последний процесс несколько описан здесь:
http://gluonframework.wordpress.com/2010/03/02/shell-only-web2py/
web2py основан на WSGI. Он работает с любым веб-сервером, который вы можете себе представить (apache + mod_wsgi / mod_python / mod_proxy; lighttpd / cheorkeey / ngnix + fcgi / wsgi.py; cherrypy; и т. Д.)
Некоторые параметры подробно описаны здесь:
http://www.web2py.com/book/default/section/11/0
Другие опции можно найти на http://web2pyslices.com
web2py также поставляется с собственным веб-сервером Rocket, который поддерживает https и работает очень быстро. Код web2py также можно развернуть в Google App Engine.
Проверьте активность в google group web2py.