feat(api): implement FastAPI routes with JWT authentication

- jokes.py: Public joke listing, detail, and random endpoints
- categories.py: Type and crowd listing endpoints
- auth.py: Login endpoint with JWT token generation
- admin.py: Full CRUD for jokes, types, crowds with JWT protection
- Fix request body schemas to use Create DTOs instead of Response models

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
bwstudio
2026-05-21 21:02:59 +08:00
co-authored by Claude Opus 4.7
parent d59474f0a6
commit c3a8e3e311
6 changed files with 424 additions and 0 deletions
+7
View File
@@ -2,6 +2,7 @@ from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.config import API_TITLE, API_VERSION
from app.routers import jokes_router, categories_router, auth_router, admin_router
# Create FastAPI application
app = FastAPI(title=API_TITLE, version=API_VERSION)
@@ -15,6 +16,12 @@ app.add_middleware(
allow_headers=["*"],
)
# Mount routers
app.include_router(jokes_router)
app.include_router(categories_router)
app.include_router(auth_router)
app.include_router(admin_router)
@app.get("/")
def root():