AWS Lambda 上的 Flask 的 Swagger UI 蓝图
项目描述
aws-flask-swagger-ui
用于将Swagger UI添加到您的烧瓶应用程序的简单 Flask 蓝图。包括一个用于AWS API Gateway/Lambda 代理集成的 WSGI 适配器,以允许您将 WSGI 兼容的中间件和框架(如 Flask 和 Django)与 AWS API Gateway/Lambda 代理集成一起用于您的 Swagger 文档。
包含的 Swagger UI 版本:请参见此处
安装
pip install aws-flask-swagger-ui
用法
下面显示了简单的使用示例,以获取更多选项检查文件扩展示例:
from flask import Flask
from aws_flask_swagger_ui import get_swaggerui_blueprint, flask_ui_response
app = Flask(__name__)
swaggerui_blueprint = get_swaggerui_blueprint(
"/api-doc",
aws_gw_config={
"exportType": "oas30",
"parameters": {
"extensions": "integrations",
"extensions": "apigateway",
"extensions": "authorizers",
},
},
)
app.register_blueprint(swaggerui_blueprint)
def lambda_handler(event, context):
return flask_ui_response(app, event, context, base64_content_types={"image/png"})
AWS 网关配置
http://mysite.com = https://restApiId.execute-api.region.amazonaws.com/stage/
为了使上述示例正常工作,Lambda 函数必须作为代理连接到端点http://mysite.com/api-doc/
{proxy+}使用具有方法的资源配置您的 API 网关ANY。您的“方法响应”可能应该包括application/json使用该Empty模型的“200 响应主体”。
由于 API Gateway 与 {proxy+} 定义的根文件夹不匹配,因此您的默认 URL 应包含 index.html。建议在您的路径上创建一个模拟集成/api-doc以返回 301。(例如:/api-doc => 301=> /api-doc/index.html)可以在本文中找到基于 Terraform 实现此目的的源代码。
Lambda 测试事件
Lambda 函数必须具有导出 API 定义的权限!
如果您希望将 Lambda 中的“测试”功能用于您的函数,您将需要一个“API Gateway AWS 代理”事件。检查事件文件夹中的事件JSON 对象。
要更新您的测试事件,请单击“操作”->“配置测试事件”。
在事件中,您需要使用您的 AWS 账户的值更新"apiId"和。"stage"
使用密码保护文档
如果您创建一个环境变量,如 SWAGGER_PASSWORD=abc
然后您需要在 URL 中传递一个查询参数,例如http://mysite.com/api-doc/?pass=abc
如果您没有环境变量,则端点不受密码保护,您可以按照正常http://mysite.com/api-doc/访问它
配置
蓝图支持重载所有可以 JSON 序列化的 Swagger UI 配置选项。有关选项,请参阅swagger-ui 配置。
目前不支持插件和函数参数。
OAuth2 参数可以在swagger-ui oauth2中找到。
执照
这个库是根据Apache 2.0 License 授权的。
测试
- 克隆 repo 并运行 pytest
git clone https://github.com/tb102122/aws_flask_swagger_ui.git
python -m venv virtualenv
virtualenv/bin/activate
pip install --upgrade pip, setuptools, wheel
pip install flake8 pytest boto3 pytest-cov
pip install .
flake8 .
pytest
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
aws_flask_swagger_ui -1.0.4-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a6e6e82b32a82b83ea59760aaebced38922491f3d753803494ce920f7ffc8ea8 |
|
| MD5 | ceed01c03cbd7d22f7aca9a6108c0bfa |
|
| 布莱克2-256 | 9b3bd980a6988fe7c91d9b5da9ef243135c44a6bdc48a8872cee24697b89c0a7 |