blockyserver/internal/api/server.go
devilreef ce511e1a85 feat: add /render/mp4 endpoint with FFmpeg encoding
- Add MP4Request type with fps param
- Render frames in parallel, encode via ffmpeg
- Add ffmpeg to Docker image
2026-01-23 01:11:53 +06:00

35 lines
735 B
Go

package api
import (
"net/http"
"time"
"blockyserver/internal/service"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
)
// NewServer creates a new HTTP server with all routes configured
func NewServer(svc *service.MergeService) http.Handler {
r := chi.NewRouter()
// Middleware
r.Use(middleware.Logger)
r.Use(middleware.Recoverer)
r.Use(middleware.Timeout(60 * time.Second))
// Create handlers
h := NewHandlers(svc)
// Routes
r.Get("/health", h.HandleHealth)
r.Get("/openapi.json", h.HandleOpenAPISpec)
r.Get("/docs", h.HandleSwaggerUI)
r.Post("/render/glb", h.HandleGLB)
r.Post("/render/png", h.HandlePNG)
r.Post("/render/gif", h.HandleGIF)
r.Post("/render/mp4", h.HandleMP4)
return r
}