没有项目描述
openapi-core的Python项目详细描述
关于
openapi core是一个python库,它添加了客户端和服务器端支持 为了OpenAPI Specification v3.0.0。
安装
推荐方式(通过PIP):
$ pip install openapi-core
或者,您可以下载代码并从存储库安装:
$ pip install -e git+https://github.com/p1c2u/openapi-core.git#egg=openapi_core
用法
首先创建您的规范:
fromopenapi_coreimportcreate_specspec=create_spec(spec_dict)
现在您可以使用它来验证请求
fromopenapi_core.shortcutsimportRequestValidatorvalidator=RequestValidator(spec)result=validator.validate(request)# raise errors if request invalidresult.raise_for_errors()# get list of errorserrors=result.errors
从验证结果中解组请求数据
# get parameters dictionary with path, query, cookies and headers parametersvalidated_params=result.parameters# get bodyvalidated_body=result.body
或者使用快捷方式进行简单验证
fromopenapi_coreimportvalidate_parameters,validate_bodyvalidated_params=validate_parameters(spec,request)validated_body=validate_body(spec,request)
请求对象应实现BaseOpenAPIRequest接口。您可以使用flaskopenapirest a flask/werkzeug请求包装器实现:
fromopenapi_core.shortcutsimportRequestValidatorfromopenapi_core.wrappers.flaskimportFlaskOpenAPIRequestopenapi_request=FlaskOpenAPIRequest(flask_request)validator=RequestValidator(spec)result=validator.validate(openapi_request)
或者为快捷方式指定请求包装类
fromopenapi_coreimportvalidate_parameters,validate_bodyvalidated_params=validate_parameters(spec,request,wrapper_class=FlaskOpenAPIRequest)validated_body=validate_body(spec,request,wrapper_class=FlaskOpenAPIRequest)
您还可以验证响应
fromopenapi_core.shortcutsimportResponseValidatorvalidator=ResponseValidator(spec)result=validator.validate(request,response)# raise errors if response invalidresult.raise_for_errors()# get list of errorserrors=result.errors
并从验证结果中解组响应数据
# get headersvalidated_headers=result.headers# get datavalidated_data=result.data
或者使用快捷方式进行简单验证
fromopenapi_coreimportvalidate_datavalidated_data=validate_data(spec,request,response)
响应对象应实现BaseOpenAPIResponse接口。您可以使用flaskopenapireponse a flask/werkzeug response wrapper实现:
fromopenapi_core.shortcutsimportResponseValidatorfromopenapi_core.wrappers.flaskimportFlaskOpenAPIResponseopenapi_response=FlaskOpenAPIResponse(flask_response)validator=ResponseValidator(spec)result=validator.validate(openapi_request,openapi_response)
或者为快捷方式指定响应包装类
fromopenapi_coreimportvalidate_parameters,validate_bodyvalidated_data=validate_data(spec,request,response,response_wrapper_class=FlaskOpenAPIResponse)