1.5 KiB
1.5 KiB
Backend (Go + Gin)
REST API that serves the schedule/time endpoints and current episode control. Built in Go, containerized with a multi-stage Dockerfile.
Prerequisites
- Go 1.22+
- PostgreSQL reachable (uses env-driven DSN pieces)
golang-migratenot required locally (migrations shipped in repo)
Env
The server builds its DSN from:
PGHOST,POSTGRES_PORT,POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB,PGSSLMODEADDR(listen address, default:8082)GIN_MODE(e.g.,release)
Commands
# Run locally (expects Postgres per env)
go run ./cmd/server
# Fetch one dアニメ episode to stdout
go run ./cmd/danime-episode <partId>
# Run migrations
go run ./cmd/migrate
# Tests
go test ./...
# Swagger create docs
swag init -g cmd/server/main.go -o ./docs
Docker build (used by compose)
docker build -t watchparty-backend .
Compose uses the same image for api and the one-off migrate job.
Endpoints (key)
GET /api/v1/time— server time for client clock syncGET /api/v1/current— current schedule itemPOST /api/v1/current— set current episode (expects{ id, start_time? })GET /api/v1/shows— list of episodesPOST /api/v1/shows— create a new episode (expects{ ep_num, ep_title, season_name, start_time, playback_length })GET /api/v1/danime?part_id=...— scrape dアニメ episode metadata (returns{ ep_num, ep_title, season_name, playback_length })GET /healthz— health check