|
|
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"} |