nirum服务作为wsgi应用程序
nirum-wsgi的Python项目详细描述
nirum服务作为wsgi应用程序
这个包提供了nirum_wsgi.WsgiApp类,该类适应给定的 向wsgi应用程序提供nirum服务:
fromyourserviceimportYourServicefromnirum_wsgiimportWsgiAppclassYourServiceImpl(YourService):...app=WsgiApp(YourServiceImpl())
还有一个名为nirum-server的开发用途cli启动程序:
nirum-server -H 0.0.0.0 -p 8080 --debug 'yourserviceimpl:YourServiceImpl()'
更改日志
版本0.3.0
2018年5月25日发布。
为Nirum 0.4.0编译器做好准备。服务类实例 由早于0.4.0版本的编译器生成的 LegacyWsgiApp。注意,WsgiApp的构造函数检测到 编译器的哪个版本是从中生成的给定服务对象, 如果它早于0.4.0,则会自动返回 LegacyWsgiApp而不是WsgiApp,用于向后兼容。
无效方法参数的400 Bad Request错误响应变成 包含一个或多个错误的名为errors的more字段。 其格式如下:
{"message":"There are invalid arguments.","errors":[{"path":".author.name","message":"Expected a string."},{"path":".tags","message":"Expected an array."}]}
WsgiApp在python 2中是一个旧样式的类。现在是一种新样式 上课。Python3没有变化(因为Python3中没有旧的样式类)。
添加了MethodArgumentError以存储 方法参数的反序列化。
WsgiApp.error()和WsgiApp.make_error_response()方法变得能够 获取额外的关键字参数来扩展结果json对象。
版本0.2.1
2018年3月20日发布。
- 修复了引发的运行时re.error(sre_constants.error) 当查询字符串的变量名有一个或多个连字符时 在@http-resource注释的path中。张秀涵著#250
版本0.2.0
2018年2月4日发布。
- 使具有可选类型的参数可以省略。[#205]
- 按查询模式增加方法调度 例如,@http-resource(method="GET",path="/users?from={from}&to={to}")。 [#130]
- 添加了按路径模式(uri模板)分派的基本方法 http-resource注释,例如, @http-resource(method="GET",path="/users/{login}/works/{work-id}/")。 [#130]
- 为CORS添加了allowed_origins和allowed_headers选项 WsgiApp构造函数。它支持简单的通配符(*)模式语法 也。
- 添加了AnnotationError、NoJsonError和ServiceMethodError 例外情况。
- 因为返回的不允许值与返回类型不匹配 是服务器端造成的故障,这个案例的http状态码变成 500 Internal Server Error而不是400 Bad Request。 现在它还使用logging模块写入日志。
- 对于从具有非空返回类型的方法返回None的错误, 现在,它显示了一个更可读和调试友好的消息 响应而不是意外的python异常。
- WsgiApp.url_map属性已消失。
- /ping/资源已丢失。
- 修复了nirum-server命令,该命令能够从 当前工作目录(.;cwd)。
版本0.1.0
2017年7月10日发布。