如果我有一个从spyne.Application继承并通过spyne.WsgiApplication对象提供服务的spyne应用程序,我将如何向/或/info等WSGI服务器添加自定义HTTP端点
基本结构反映了在spyne.io上找到的结构
class HelloWorldService(ServiceBase):
@srpc(Unicode, Integer, _returns=Iterable(Unicode))
def say_hello(name, times):
for i in range(times):
yield 'Hello, %s' % name
application = Application([HelloWorldService], # <--- spyne.Application
tns='spyne.examples.hello',
in_protocol=Soap11(validator='lxml'),
out_protocol=JsonDocument()
)
if __name__ == '__main__':
from wsgiref.simple_server import make_server
wsgi_app = WsgiApplication(application) # <--- spyne.WsgiApplication
server = make_server('0.0.0.0', 8000, wsgi_app)
server.serve_forever()发布于 2015-08-17 17:24:54
在spyne中,导入from spyne.util.wsgi_wrapper import WsgiMounter (来源)将允许您使用单个字典参数调用WsgiMounter函数。字典的键表示根端点的扩展,值是与WSGI兼容的应用程序。
例如:
def create_web_app(config):
app = Flask(__name__)
@app.route('/about')
def about():
return 'About Page'
return app
wsgi_app = WsgiMounter({
'': SpyneAppWsgi(app),
'www': create_web_app(config)
})..will配置一个服务器,其中spyne应用将从根服务器得到服务,而create_web_app app中的所有内容都将从/www配置。(要进入/about页面,您可以路由到http://localhost:8080/www/about)
在本例中,create_web_app返回一个Flask应用程序。
https://stackoverflow.com/questions/31952473
复制相似问题