fix: test vercel

This commit is contained in:
muhamad fais aizat 2025-05-15 22:16:13 +07:00
parent 5c3a98628c
commit 9078c6c940
1 changed files with 39 additions and 55 deletions

View File

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