- Add MP4Request type with fps param - Render frames in parallel, encode via ffmpeg - Add ffmpeg to Docker image
35 lines
735 B
Go
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
|
|
}
|