Python web-service启动并发送xml(没有wsdl?)复杂的数据结构

时间:2014-01-08 10:59:25

标签: python xml web-services soap wsdl

我是编程的新手,也是python的新手。我的任务是构建一个Web服务,它接收xml文档将它们转换为某些数据结构并发回一些OK(XML)消息。

xml的主要部分示例:

<Formula>
  <Left type="Function">
            <Name>>Function name</Name>
        <Arguments>
            <Expression type="IndexPrices">
                <Name>SomeIndexPrice</Name>
            </Expression>
            <Expression Type="Constant">
                <Value>9</Value>
            </Expression>
            <Expression Type="Constant">
                <Value>0</Value>
            </Expression>
                <Expression Type="Constant">
                <Value>1</Value>
            </Expression>
            <Expression Type="Constant">
                <Value>1</Value>
            </Expression>
       </Arguments>
    </Left>

    <Operator>
        <Symbol>*</Symbol>
    </Operator>
    <Right type="Constant">
        <Value>100</Value>
    </Right>
</Formula>

我尝试使用Elementtree解析/转换此类XML文件。 步骤进行:

  1. 查找IndexPrice
  2. 初始化IndexPrice(从数据库获取数据)
  3. 将参数放入函数 - &gt;获取新的IndexPrice对象
  4. 获取运营商
  5. 获取操作符的函数,该函数对应于IndexPrice与常量的乘法。
  6. 此步骤可以手动完成。每次操作员出现时都会创建新的价格指数。

    我不确定,但我认为不需要WSDL。我想我只需要一个可以读取XMl的网络服务器 - &gt;从XML创建ELementtree对象 - &gt;调用执行上述步骤的函数 - &gt;发回XML。

    构建只读取xml文档并将其转换为Elementree的服务器的最佳方法是什么?并且能够发回一些XML文件。哪个python服务器/框架最适合此任务? (我试过Ladon,但据我所知,它会自动解析XML,我认为最好手动构建解析器。)

    我们正在构建的应用程序是一个真实世界的应用程序,我不知道如何使我的部分工作。

1 个答案:

答案 0 :(得分:0)

Ladon实现SOAP XML模式(以及其他类似的RPC协议)。另外,如果发送的xml还没有赋予这样的模式,并且接口是简单的(即不是rpc),那么实现SOAP服务器几乎没用。

虽然没有最好的&#34;解决方案,我认为有用的是根据您的要求构建框架。即:

  1. 如果您需要接收http请求,我可以使用http bottleflask等http微框架开始。
  2. 如果您需要发送http请求,请使用requests
  3. 如果您需要解析XML,请使用lxml
  4. 如果您需要其他组件/功能,请参阅Google&#34; python 组件&#34;你可能会找到一个好的框架。