Severian commited on
Commit
8cfcf25
·
verified ·
1 Parent(s): 029eea3

Update api.py

Browse files
Files changed (1) hide show
  1. api.py +34 -10
api.py CHANGED
@@ -20,6 +20,7 @@ from fastapi.security.api_key import APIKeyHeader, APIKey
20
  from fastapi.staticfiles import StaticFiles
21
  from fastapi.openapi.docs import get_swagger_ui_html
22
  from fastapi.responses import HTMLResponse
 
23
 
24
  # Load environment variables
25
  load_dotenv()
@@ -321,15 +322,6 @@ app.add_middleware(
321
  allow_headers=["*"],
322
  )
323
 
324
- # Add security scheme
325
- app.add_middleware(
326
- CORSMiddleware,
327
- allow_origins=["*"],
328
- allow_credentials=True,
329
- allow_methods=["*"],
330
- allow_headers=["*"],
331
- )
332
-
333
  # Add security scheme
334
  app.add_security_requirement({"ApiKeyAuth": []})
335
  app.openapi_schema = None # Reset OpenAPI schema
@@ -554,4 +546,36 @@ async def custom_swagger_ui_html():
554
  }
555
  </style>
556
  """
557
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  from fastapi.staticfiles import StaticFiles
21
  from fastapi.openapi.docs import get_swagger_ui_html
22
  from fastapi.responses import HTMLResponse
23
+ from fastapi.openapi.utils import get_openapi
24
 
25
  # Load environment variables
26
  load_dotenv()
 
322
  allow_headers=["*"],
323
  )
324
 
 
 
 
 
 
 
 
 
 
325
  # Add security scheme
326
  app.add_security_requirement({"ApiKeyAuth": []})
327
  app.openapi_schema = None # Reset OpenAPI schema
 
546
  }
547
  </style>
548
  """
549
+ )
550
+
551
+ def custom_openapi():
552
+ if app.openapi_schema:
553
+ return app.openapi_schema
554
+
555
+ openapi_schema = get_openapi(
556
+ title=app.title,
557
+ version=app.version,
558
+ description=app.description,
559
+ routes=app.routes,
560
+ )
561
+
562
+ # Add security scheme to components
563
+ openapi_schema["components"] = {
564
+ "securitySchemes": {
565
+ "ApiKeyAuth": {
566
+ "type": "apiKey",
567
+ "in": "header",
568
+ "name": "X-API-Key",
569
+ "description": "API key required for authentication"
570
+ }
571
+ }
572
+ }
573
+
574
+ # Add global security requirement
575
+ openapi_schema["security"] = [{"ApiKeyAuth": []}]
576
+
577
+ app.openapi_schema = openapi_schema
578
+ return app.openapi_schema
579
+
580
+ # Set the custom OpenAPI schema
581
+ app.openapi = custom_openapi