Python web服务显示和发送xml(无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. 将参数放入函数->获取新的IndexPrice对象
  4. Get运算符
  5. 获取运算符的函数,该函数对应于IndexPrice与常数的乘积

这些步骤可以手动完成。每次操作员出现时,都会创建新的价格指数。

我不确定,但我认为不需要WSDL。我想我只需要一个Web服务器,它可以读取XMl->从XMl创建ELementree对象->调用执行上述步骤的函数->发回XMl。

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

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

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

虽然没有"最好"的解决方案,但我发现效果很好的是根据您的需求构建框架。I.e:

  1. 如果你需要接收http请求,我会从一个http微框架开始,比如bottleflask
  2. 如果需要发送http请求,请使用requests
  3. 如果需要解析XML,请使用lxml

如果你需要另一个组件/功能,谷歌"python组件",你可能会找到一个很好的框架。

最新更新