fix:menambahkan api

This commit is contained in:
muhamad fais aizat 2025-05-15 20:09:49 +07:00
parent d3bf811082
commit 6be1adccdb
1 changed files with 45 additions and 0 deletions

45
backend/api/index.py Normal file
View File

@ -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=["*"],
)