From 6be1adccdb36ad6878970b3634f9a51a0de5c4a0 Mon Sep 17 00:00:00 2001 From: muhamad fais aizat Date: Thu, 15 May 2025 20:09:49 +0700 Subject: [PATCH] fix:menambahkan api --- backend/api/index.py | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 backend/api/index.py diff --git a/backend/api/index.py b/backend/api/index.py new file mode 100644 index 00000000..48cd7515 --- /dev/null +++ b/backend/api/index.py @@ -0,0 +1,45 @@ +from fastapi import FastAPI +from fastapi.openapi.models import OAuthFlows as OAuthFlowsModel, SecurityScheme +from fastapi.openapi.utils import get_openapi +from fastapi.security import OAuth2PasswordBearer +from routes.index import api_router +from fastapi.middleware.cors import CORSMiddleware + +app = FastAPI() + +# Konfigurasi Swagger agar hanya meminta token (tanpa login ulang) +def custom_openapi(): + if app.openapi_schema: + return app.openapi_schema + openapi_schema = get_openapi( + title="API Prediction", + version="1.0.0", + description="API for Tomato Price Prediction", + routes=app.routes, + ) + openapi_schema["components"]["securitySchemes"] = { + "BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + } + } + for path in openapi_schema["paths"].values(): + for method in path.values(): + method["security"] = [{"BearerAuth": []}] + app.openapi_schema = openapi_schema + return app.openapi_schema + +app.openapi = custom_openapi # Pakai custom OpenAPI + +app.include_router(api_router) + + +# Middleware untuk CORS (Opsional, jika API digunakan oleh frontend) +app.add_middleware( + CORSMiddleware, + allow_origins=["http://localhost:5173"], # Ganti dengan domain frontend jika perlu + allow_credentials=False, + allow_methods=["*"], + allow_headers=["*"], +)