用于发出持久soap请求的plone插件

unikold.connector的Python项目详细描述


单孔连接器

plone插件,用于使用快速而现代的python soap客户端生成持久的soap请求:zeep

请求被自动存储为SOAPQuery对象,该对象允许使用响应的可变生存期进行缓存。

功能

安装

  1. unikold.connector添加到构建中
  2. 通过prefs_install_products_form
  3. 安装
  4. 创建一个SOAPQueriesFolder
  • 出于安全原因,SOAPQueriesFolder默认情况下不可全局添加-要添加它,您需要允许在所需位置临时添加此内容类型
  • 所有查询都将存储在此文件夹中
  • 也许你还想把它排除在导航之外
  1. @@unikold-connector-controlpanel中设置此文件夹的路径
  2. 如果要使用LSF查询,还必须在@@unikold-connector-lsf-controlpanel中定义设置

示例

安装此加载项后,您可以发出如下soap请求:

fromunikold.connector.soapimportSOAPConnectorsoapConnector=SOAPConnector('http://webservices.daehosting.com/services/isbnservice.wso?WSDL',# URL to WSDL file'IsValidISBN13',# name of the method'9783492700764',# method parameter24# lifetime of this request in hours)response=soapConnector.get()

如果请求已经存在且生命周期未到期,{{CD12}}只返回存储的响应。 如果请求存在,但已过时,则在返回响应之前将更新该请求。 如果请求还不存在,将创建一个新对象。它的路径将是{SOAP-Queries-Folder}.{WSDL-URL}.{Methodname}.{Parameter}(其中{SOAP-Queries-Folder}必须在此加载项的控制面板中指定-否则将在站点的根目录中创建文件夹)。

要获取相应的查询对象:

queryObject=soapConnector.getQuery()

上面没有这个插件的示例将如下所示(记住没有持久对象,没有缓存):

fromzeepimportClienturl='http://webservices.daehosting.com/services/isbnservice.wso?WSDL'client=Client(url)response=client.service.IsValidISBN13('9783492700764')

自动更新查询

使用zope clock server调用unikold.connector.update(用户必须具有权限cmf.ManagePortal):

[client2]
zope-conf-additional =
    <clock-server>
       method /SiteName/unikold.connector.update
       period 2880
       user username
       password *****
       host hostname.com
    </clock-server>

这里详细解释了参数:https://docs.plone.org/develop/plone/misc/asyncronoustasks.html#clock-server

更新大量查询可能需要一段时间,因此建议在专用客户端上运行该任务。

测试

在运行测试之前,需要在tests文件夹中创建一个名为config.py的文件, 包含以下常量:

# -*- coding: utf-8 -*-soap_test_url=u'http://webservices.daehosting.com/services/isbnservice.wso?WSDL'soap_test_method=u'IsValidISBN13'soap_test_method_parameter=u'9783492700764'# config data needed for LSF testslsf_wsdl_url=u''# URL to LSF WSDL file containing getDataXML methodlsf_test_object_type=u''# LSF object typelsf_test_conditions=[]# a list of tuples, i.e. [('prename', 'Peter')]lsf_wsdl_search_url=u''#  URL to LSF search WSDLlsf_search_test_method_parameter=u''# XML-formatted parameter for the search method# for testing LSF methods with authenticationlsf_auth_username=u''lsf_auth_password=u''lsf_auth_test_object_type=u''# LSF object typelsf_auth_test_conditions_0=[]# a list of tuples, i.e. [('prename', 'Peter')]lsf_auth_test_conditions_1=[]# a list of tuples, i.e. [('prename', 'Peter')]
  • bin/test
  • bin/code-analysis

类型错误:字符串索引必须是整数

确保此修复程序已应用于zeep:https://github.com/mvantellingen/python-zeep/pull/657/commits/a2b7ec0296bcb0ac47a5d15669dcb769447820eb

许可证

该项目是根据gplv2授权的。

贡献者

更改日志

1.0a1(未发布)

  • 初次发布。 [mbarde]

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

推荐PyPI第三方库


热门话题
java是否可以通过使用AtomicInteger的方法对int进行变异?   java对象化实体重用问题   Android在外部播放器中播放视频url   Intelli j Java fx工件jar不工作   java使用另一个已排序列表对多个列表进行排序?   集合和列表接口的Java组合   检查数组中是否有一条路径,其和在java中是递归求和   java Spring确认在创建JDBC连接时从属性文件中读取不正确的值   BufferedReader在java中的工作原理   spring如何在Java中使用两个不同类的对象和比较字段过滤列表   日期回文查找程序运行不正常(Java)   java替代显示。getWidth()   java如何通过中间层将软件与其他软件集成   java获取名称列表/数组,并计算每个唯一名称的列出次数   Android应用程序调试中的java强制关闭错误   java Junit测试调用Dao类的业务类   java跟踪实例属性的更改   java Glassfish和EAR命名约定