从你的烧瓶项目中提取夸张的规格
nicobatty-flasgger的Python项目详细描述
弗拉斯格
适用于您的烧瓶API的简单招摇用户界面
flasgger是从注册在api中的所有烧瓶视图中提取openapi规范的烧瓶扩展。
flasgger还附带了swaggerui嵌入式,因此您可以访问http://localhost:5000/apidocs并可视化和与您的api资源交互。
flasgger还提供对传入数据的验证,使用与它可以验证作为post、put、patch接收的数据是否对使用yaml、python字典或棉花糖模式定义的模式有效的相同规范。s
flasger可以使用简单的函数视图或methodview,使用docstring作为规范,或者使用@swag\u from
decorator从yaml或dict获取规范,还提供swaggerview它可以使用棉花糖模式。按规范。
flasgger与flask restful兼容,因此您可以同时使用资源和
swag规范,查看restful示例。
flasger还支持将棉花糖apispec作为规范的基本模板,如果您使用的是来自棉花糖的apispec,请查看apispec示例。
顶级贡献者
<<<<<< 有一些示例应用程序,您也可以在flasger demo a p中使用示例。
<阻塞率> 注意:所有示例应用程序也是测试用例,并在Travis CI中自动运行,以确保质量和覆盖范围。 示例和演示a p也可以作为docker图像/容器来构建和运行: 然后访问flasgger demo a p,网址为http://localhost:5000
在您的virtualenv do下: 确保您有最新的设置工具 然后 或(开发版本) 注意:如果要使用棉花糖模式,还需要运行pip install marshmallow apispec
创建一个名为的文件,例如 现在运行: 然后转到:http://localhost:5000/apidocs/" rel="nofollow">http://localhost:5000/apidocs/ 你应该得到: 保存一个新文件 让我们使用相同的示例,只更改视图功能。 如果不想使用decorator,可以使用docstring 将python字典创建为: 现在使用相同的函数,用dict代替yaml文件。 首先: 注意:查看 注意:在路径规则中捕获参数时总是使用显式类型,错误: flasgger与flask restful兼容您只需安装 flasgger可以配置为自动分析外部yam api文档。在 此外,当使用上述的flask restful时,flasger将通过在构造 您可以按端点或方法分离规范 在方法视图中的多个方法也可以通过
多次注册 将 也可以使用 但是您可以手动调用 也可以在 查看 所有验证选项都可以在http://json schema.org/latest/json-schema-validation.html" rel="nofollow">http://json schema.org/latest/json schema validation.html中找到
默认情况下,flasgger将使用python jsonschema
执行验证。 只要满足要求,就支持自定义验证功能: 任何返回值都将被丢弃。 将函数提供给swagger实例将使其成为默认值: 提供函数作为 默认情况下,flasgger将通过中止
具有400个错误请求响应的请求错误信息。 自定义验证错误处理函数可以提供给
只要满足要求,就取代默认行为: 将函数提供给swagger实例将使其成为默认值: 提供函数作为 使用自定义验证错误处理程序函数的示例可以是
可在example validation\u error\u handler.py找到
您可能希望使用您在自大规范中定义的模式作为字典。
不复制规范。为此,您可以使用 此方法返回包含flasgger模式id的字典,
所有定义的参数和所需参数列表。 默认情况下,flasgger将尝试清理yaml定义中的内容。
将每个 您可以自己编写消毒剂 如果您希望能够呈现
规格说明中的标记使用mk_消毒剂 您可以覆盖应用程序中的 flasger支持2版和3版的用户界面,3版仍处于试验阶段,但是
可以尝试设置 在使用swaggerui 3时,有对openapi3.0的实验性支持。要使用OpenAPI 3.0,请将 有关使用 从flasgger 0.9.2开始,可以为flasgger默认模板中加载的swagger和jquery库指定用于加载javascript和css的外部url位置。如果省略下面的配置属性,flasger将提供它所包含的静态版本-这些版本可能比当前的swagger ui v2或v3版本要旧。 以下示例从unpkg.com加载swagger ui和jquery版本: 您可以使用任何提供模板的默认数据启动您的swagger规范: 然后模板是默认数据,除非某些视图更改了它。你
还可以将所有规范作为模板提供,并且没有视图。或观点
外部应用程序。 有时,您需要根据动态值在运行时获取一些数据例如:您想检查 只有在运行时对值进行编码时, 有时,你在反向代理(例如nginx)后面提供你的狂妄文档。当遵循烧瓶指南时,
虚张声势的文档将正确加载,但"试用"按钮指向错误的位置。可以使用以下代码修复此问题: 可以为flasger提供自定义配置,例如不同的specs路由或禁用swagger ui: 当在规范中找到 在本例中,您不必传递定义,但需要将id添加到
您的模式。示例和演示应用程序
码头工人
安装
<阻塞率>入门
使用docstrings作为规范
colors.py
使用外部yaml文件
colors.yml
文件:
快捷方式。使用dict原始规格的版本
0
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
1
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
使用棉花糖模式
< Buff行情>pip安装棉花糖apispec
2
< Buff行情>docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
examples/validation.py
以获得更完整的示例。/api/<;username>;
正确:/api/<;字符串:username>;
使用瓶装饮料资源
pip install flask restful
然后:
3
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
自动分析外部yaml文档和
methodview
sapp.config['swagger']
中设置adoc_dir
,swagger将通过在doc_dir
中查找yaml文件来加载api文档按终结点名称和方法名称存储。例如,'doc-dir':'./examples/docs/'
和一个文件/examples/docs/items/get.yml
将为itemsview
方法get
提供一个夸张的文档
swagger
时传递parse=true
来使用flask restful.reqparse.requestparser
,找到所有methodview
并将解析和验证的数据存储在烧瓶.请求.分析数据
为单个函数处理多个http方法和路由
4
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
url_规则。看一看
示例/example\u应用程序
使用相同的数据验证您的api post主体。
swag_from
'svalidation参数设置为true
将自动验证传入数据:
5
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
swagger.validate
注释:
6
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
validate
:
7
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
swaggerview
中定义validation=true
specs\u dict
用于验证。examples/validation.py
了解更多信息。自定义验证
8
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
swag_from
或swagger的参数。validate
注释或直接指向validate
函数将强制使用
超过swagger的默认验证功能:
9
docker build -t flasgger .
docker run -it --rm -p 5000:5000 --name flasgger flasgger
0
pip install -U setuptools
1
pip install -U setuptools
验证错误处理
2
pip install -U setuptools
swag_from
或swagger的参数。validate
注释或直接指向validate
函数将强制使用
超过swagger的默认验证功能:
3
pip install -U setuptools
4
pip install -U setuptools
5
pip install -U setuptools
获取定义为python字典的模式
获取模式
方法:
6
pip install -U setuptools
HTML消毒剂
\n
替换为<;br>;
,但您可以更改此行为
设置另一种消毒剂。
7
pip install -U setuptools
8
pip install -U setuptools
招摇过市的用户界面和模板
模板/flasgger/index.html
,然后
此模板将是swaggerui的index.html
。使用flasgger/ui2/templates/index.html
作为定制的基础。
app.config['swagger']['uiversion']
9
pip install -U setuptools
OpenAPI 3.0支持
a p p.config['swagger']['openapi']
设置为当前SwaggerUI 3支持的版本,例如'3.0.2'
回调
和requestbody
的示例,请参见回调示例外部加载swagger ui和jquery js/css
0
pip install flasgger
用默认数据初始化flasgger。
1
pip install flasgger
在运行时获取默认数据
请求是否安全以确定
方案是否为
https
您可以使用lazystring
来实现这一点
2
pip install flasgger
jsonify
才会计算lazystring
值,因此您可以访问flask请求、会话、g等,还可以访问数据库。
在反向代理后面
3
pip install flasgger
自定义默认配置
4
pip install flasgger
提取定义
id
时,可以提取定义,例如:
5
pip install flasgger
推荐PyPI第三方库