Я хотел бы предоставить фрейм данных Pandas с out_protocol=XmlDocument()
в качестве SOAP веб-службы.
На данный момент мне удалось раскрыть String
только путем вызова веб-службы с HTTP
in_protocol . Вот рабочий код.
Код сервера:
from spyne import Application, srpc, ServiceBase, \
Integer, Unicode, String
from spyne import Iterable
from spyne.protocol.http import HttpRpc
from spyne.protocol.soap import Soap11
from spyne.protocol.json import JsonDocument
from spyne.protocol.xml import XmlDocument
from spyne.server.wsgi import WsgiApplication
class HelloWorldService(ServiceBase):
@srpc(String, Integer, _returns=String)
def say_hello(name, times):
s = ('Hi' + str(name)+' ')*times
return s
application = Application([HelloWorldService],
tns='spyne.examples.hello.http',
in_protocol=HttpRpc(), #Soap11 for SOAP client
out_protocol=XmlDocument()
)
if __name__ == '__main__':
from wsgiref.simple_server import make_server
wsgi_app = WsgiApplication(application)
server = make_server('127.0.0.1', 8000, wsgi_app)
server.serve_forever()
Код клиента:
curl "http://localhost:8000/say_hello?times=5&name=Dave"
Как мне изменить код, чтобы лучше отображать кадр данных Pandas вместо строки. А как заставить клиента использовать протокол SOAP для отправки запросов?
Моя попытка для клиента SOAP:
from zeep import Client
client = Client('http://localhost:8000/?wsdl')
result = client.service.say_hello("Antonio", 10)
print(result)
Ожидаемый вывод веб-службы должен быть табличным, как XML. Вот пример:
![enter image description here](https://i.stack.imgur.com/0xyQC.png)