29
29
30
30
from aws_lambda_powertools .event_handler import content_types
31
31
from aws_lambda_powertools .event_handler .exceptions import NotFoundError , ServiceError
32
+ from aws_lambda_powertools .event_handler .openapi .constants import DEFAULT_API_VERSION , DEFAULT_OPENAPI_VERSION
33
+ from aws_lambda_powertools .event_handler .openapi .swagger_ui .html import generate_swagger_html
32
34
from aws_lambda_powertools .event_handler .openapi .types import (
33
35
COMPONENT_REF_PREFIX ,
34
36
METHODS_WITH_BODY ,
@@ -1334,8 +1336,8 @@ def get_openapi_schema(
1334
1336
self ,
1335
1337
* ,
1336
1338
title : str = "Powertools API" ,
1337
- version : str = "1.0.0" ,
1338
- openapi_version : str = "3.1.0" ,
1339
+ version : str = DEFAULT_API_VERSION ,
1340
+ openapi_version : str = DEFAULT_OPENAPI_VERSION ,
1339
1341
summary : Optional [str ] = None ,
1340
1342
description : Optional [str ] = None ,
1341
1343
tags : Optional [List [str ]] = None ,
@@ -1456,8 +1458,8 @@ def get_openapi_json_schema(
1456
1458
self ,
1457
1459
* ,
1458
1460
title : str = "Powertools API" ,
1459
- version : str = "1.0.0" ,
1460
- openapi_version : str = "3.1.0" ,
1461
+ version : str = DEFAULT_API_VERSION ,
1462
+ openapi_version : str = DEFAULT_OPENAPI_VERSION ,
1461
1463
summary : Optional [str ] = None ,
1462
1464
description : Optional [str ] = None ,
1463
1465
tags : Optional [List [str ]] = None ,
@@ -1521,9 +1523,9 @@ def enable_swagger(
1521
1523
self ,
1522
1524
* ,
1523
1525
path : str = "/swagger" ,
1524
- title : str = "Powertools API" ,
1525
- version : str = "1.0.0" ,
1526
- openapi_version : str = "3.1.0" ,
1526
+ title : str = "Powertools for AWS Lambda (Python) API" ,
1527
+ version : str = DEFAULT_API_VERSION ,
1528
+ openapi_version : str = DEFAULT_OPENAPI_VERSION ,
1527
1529
summary : Optional [str ] = None ,
1528
1530
description : Optional [str ] = None ,
1529
1531
tags : Optional [List [str ]] = None ,
@@ -1577,7 +1579,6 @@ def swagger_js():
1577
1579
status_code = 200 ,
1578
1580
content_type = "text/javascript" ,
1579
1581
body = body ,
1580
- compress = True ,
1581
1582
)
1582
1583
1583
1584
@self .get ("/swagger.css" , include_in_schema = False )
@@ -1587,7 +1588,6 @@ def swagger_css():
1587
1588
status_code = 200 ,
1588
1589
content_type = "text/css" ,
1589
1590
body = body ,
1590
- compress = True ,
1591
1591
)
1592
1592
1593
1593
@self .get (path , middlewares = middlewares , include_in_schema = False )
@@ -1616,51 +1616,12 @@ def swagger_handler():
1616
1616
license_info = license_info ,
1617
1617
)
1618
1618
1619
- body = f"""
1620
- <!DOCTYPE html>
1621
- <html>
1622
- <head>
1623
- <meta charset="UTF-8">
1624
- <title>Swagger UI</title>
1625
- <link rel="stylesheet" type="text/css" href="{ swagger_css } ">
1626
- </head>
1627
-
1628
- <body>
1629
- <div id="swagger-ui">
1630
- Loading...
1631
- </div>
1632
- </body>
1633
-
1634
- <script src="{ swagger_js } "></script>
1635
-
1636
- <script>
1637
- var swaggerUIOptions = {{
1638
- dom_id: "#swagger-ui",
1639
- docExpansion: "list",
1640
- deepLinking: true,
1641
- filter: true,
1642
- spec: JSON.parse(`
1643
- { spec }
1644
- `.trim()),
1645
- presets: [
1646
- SwaggerUIBundle.presets.apis,
1647
- SwaggerUIBundle.SwaggerUIStandalonePreset
1648
- ],
1649
- plugins: [
1650
- SwaggerUIBundle.plugins.DownloadUrl
1651
- ]
1652
- }}
1653
-
1654
- var ui = SwaggerUIBundle(swaggerUIOptions)
1655
- </script>
1656
- </html>
1657
- """ .strip ()
1619
+ body = generate_swagger_html (spec , swagger_js , swagger_css )
1658
1620
1659
1621
return Response (
1660
1622
status_code = 200 ,
1661
1623
content_type = "text/html" ,
1662
1624
body = body ,
1663
- compress = True ,
1664
1625
)
1665
1626
1666
1627
def route (
0 commit comments