22
Май
2008
Building a Web Services in Python, Part 2
В продолжении к предыдущему посту, хочу привести простой пример SOAP-сервера, который реализован только на python'е:
#!/usr/bin/env python
#
### soapagent_standalone_server.py ###
#
from ZSI import dispatch
import soapagent_services as ss
def main():
dispatch.AsServer(port=8080, modules=(ss,))
if __name__ == "__main__": main()
Который включает модуль soapagent_services.py и начинает диспетчеризацию реализованных там обработчиков. Т.е. по сути, это замена apache+mod_python.
Еще раз кратко шаг за шагом, как запустить такой сервер:
- берем soapagent.wsdl и получаем из него soapagent_server.py и soapagent_types.py (командой wsdl2py)
- создаем soapagent_services.py и реализуем в нем обработчики (пример в предыдущем посте)
- создаем soapagent_standalone_server.py и запускаем
Из soapagent_client.py можно сделать такого клиента:
#!/usr/bin/env python
import sys
from soapagent_client import *
def main():
loc = soapagentLocator()
# Для вывода полного SOAP диалога (в сыром виде) можно включить trace
# без trace:
# port = loc.getsoapagentPort()
# с trace:
port = loc.getsoapagentPort(tracefile=sys.stdout)
msg = SUM()
msg._aVal = 1
msg._bVal = 2
response = port.SUM(msg)
print response.__dict__
if __name__ == "__main__": main()









Оставить комментарий