package admin import ( "embed" "net/http" "github.com/gin-gonic/gin" ) //go:embed openapi.yaml var openAPIFS embed.FS // OpenAPIYAML returns the embedded OpenAPI spec bytes. func OpenAPIYAML() ([]byte, error) { return openAPIFS.ReadFile("openapi.yaml") } // DocsHandler serves the Scalar API reference HTML. func DocsHandler(c *gin.Context) { _, err := OpenAPIYAML() if err != nil { c.String(http.StatusInternalServerError, "openapi.yaml not embedded: %v", err) return } c.Data(http.StatusOK, "text/html; charset=utf-8", []byte(scalarHTML)) } // OpenAPISpecHandler serves the raw OpenAPI YAML spec. func OpenAPISpecHandler(c *gin.Context) { spec, err := OpenAPIYAML() if err != nil { c.String(http.StatusInternalServerError, "openapi.yaml: %v", err) return } c.Data(http.StatusOK, "application/yaml", spec) } const scalarHTML = ` spark-mcp-go Admin API `