From 9078c6c940a769b8e05f89edf17de26fb86ca48a Mon Sep 17 00:00:00 2001 From: muhamad fais aizat Date: Thu, 15 May 2025 22:16:13 +0700 Subject: [PATCH] fix: test vercel --- backend/index.py | 94 ++++++++++++++++++++---------------------------- 1 file changed, 39 insertions(+), 55 deletions(-) diff --git a/backend/index.py b/backend/index.py index 512a3019..48cd7515 100644 --- a/backend/index.py +++ b/backend/index.py @@ -1,61 +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=["*"], -# ) - - 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() -@app.get("/") -async def read_root(): - return {"Hello": "World"} +# 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.get("/api/ping") -async def ping(): - return {"ping": "pong"} +app.openapi = custom_openapi # Pakai custom OpenAPI -# Penting untuk Vercel -handler = app \ No newline at end of file +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=["*"], +)