| | from fastapi import FastAPI, HTTPException, Depends |
| | from fastapi.responses import JSONResponse |
| | import os |
| |
|
| | app = FastAPI(title="OpenCode API") |
| |
|
| | |
| | EXPECTED_TOKEN = os.getenv("ACCESS_TOKEN", "default_token") |
| |
|
| | |
| | def verify_token(access_token: str): |
| | if access_token != EXPECTED_TOKEN: |
| | raise HTTPException(status_code=401, detail="Invalid access token") |
| | return access_token |
| |
|
| | @app.get("/") |
| | async def root(): |
| | return {"message": "OpenCode API is running"} |
| |
|
| | @app.get("/health") |
| | async def health_check(): |
| | return {"status": "healthy"} |
| |
|
| | @app.get("/{access_token}/api/data") |
| | async def get_data(access_token: str = Depends(verify_token)): |
| | return {"data": "This is protected data"} |
| |
|
| | @app.get("/{access_token}/api/info") |
| | async def get_info(access_token: str = Depends(verify_token)): |
| | return {"info": "Protected information", "token": access_token} |
| |
|
| | @app.get("/{access_token}/") |
| | async def protected_root(access_token: str = Depends(verify_token)): |
| | return {"message": "Welcome to protected area"} |