python简单轻量级soap库

soap2p的Python项目详细描述


面向客户机和服务器的python simple和lightweight soap库 webservices接口,目标是尽可能小和简单, 支持最常见的功能。最初它的灵感来自PHP Soap Extension(模仿 它的功能性、简单性和易用性 新增功能。

支持python 3(相同的代码基,不需要运行2to 3)

目标

  • 简单:最初小于200loc的客户机/服务器混凝土 易于维护和增强的实现。
  • 灵活:适用于几个SOAP方言/服务器(Java轴,.NET, wcf,jboss,“jetty”),可以微调xml请求 以及回应
  • pythonic:没有工件,没有类生成,没有特殊类型,rpc 调用参数和返回值是简单的python结构 (听写、列表等)
  • 动态:不需要定义(wsdl),动态生成和 支持解析(缓存在pickle文件中以提高性能, 支持固定断开WSDL)
  • 简单:简单的xml操作,包括基本的序列化和raw 对象式访问soap消息
  • 可扩展:支持多个http包装器(httplib2,pycurl, urllib2)用于通过ssl和代理(isa)的特殊传输需求
  • wsgi编译器:服务器调度器可以集成到其他python 框架(web2py、django等)
  • 向后兼容:稳定的api,在 发布
  • 轻量级:低内存占用和快速处理(顺序为 在某些情况下,相对于其他实现的幅度)

历史记录

最初为AFIP(阿根廷国税局)Web服务开发的客户端: 电子发票,税收优惠,保险,外贸,农业, 海关等(http://code.google.com/p/pyafipws/wiki/ProjectSummary

现在它已经扩展到支持其他web服务,如currency 交换控制和trazamed(医疗药品的国家可追溯性 程序)

此外,还包括服务器端支持(一个通用的分派器,以便 从web2py服务框架中公开,适用于其他web服务器, 包括独立wsgi和django的示例)

源代码最初可在 GoogleCode

更改日志

最近的变化(2014/2015):

  • 支持wsse的插件系统(web服务安全扩展)
  • wsse usernametoken、usernamedgestToken和binaryTokenSignature 支持
  • pythonic xml安全库基本实现(规范化, SHA1哈希和使用X509数字的RSA签名/验证 证书)
  • 改进的soap故障详细信息
  • 几个修复程序(基本的python3支持,cdata,)

正在进行的工作:

  • 单元测试更新和清理(删除旧测试,更好的框架, 固定非确定性结果等)
  • wsdl高级支持(统一嵌套元素结构方言)
  • python3支持wsse xmlsec(m2crypto替代方案?)
  • 源代码重构以提高可读性和可维护性

以前贡献的功能(大约2013年,分叉并合并回来):

  • 更正了对多个soap端口/绑定的支持
  • 在wsdl中同时支持importinclude
  • 支持wsdl基目录来处理 导入/包含节
  • 更理智的跟踪/日志记录(跟踪现在转到log.debug(),其中 您可以处理每个模块)
  • 更具可读性的逻辑(通过删除 单独的文件)

测试

使用Python2.7+:

python -m unittest discover

使用较旧的python版本:

python -m unittest tests/suite.py

代码覆盖范围:

sudo pip install coverage
coverage run tests/suite.py
coverage report -m
coverage html

支架

为了社区支持,请随意填写 issue或 发送电子邮件至 soap@python.org。 如果您有技术问题,请不要向wiki页面添加评论。

对于优先的商业技术支持,您可以联系Mariano Reingart(项目创建者和main 维护人员,请参见AUTHORS了解更多信息)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从InputStream中准确读取4个字节?   Java错误:找不到符号(使用add调用arrayList时)   JavaFX表格视图分组行   java Akka PoolRouter添加withBroadcastPredicate正在冻结应用程序   java在何处以及如何解码@PathVariable   java扩展类后如何扩展类数组/调用类数组属性?   Java:如何让对象引用它在其中实例化的对象   从POSTMAN接收到的数据与JAVA rest api调用不匹配   jar中的java文件加载   java不能使用Scanner。下一步()和扫描仪。nextInt()在一起   java如何加载日志。Jboss中项目的resources文件夹中的xml文件   io如何在Java中压缩文件和文件夹?   java如何在JDesktopPane中锁定内部框架   EclipseJDK9不允许我使用字符串:“java.lang.String不明确”?   java会话。delete()不工作   java循环用户输入,直到满足条件   图形Java Delta时间会导致不平稳的移动   java在HQL中使用瞬态字段