yao/widgets/chart/api.go
2022-09-28 17:23:51 +08:00

66 lines
1.8 KiB
Go

package chart
import (
jsoniter "github.com/json-iterator/go"
"github.com/yaoapp/gou"
"github.com/yaoapp/yao/share"
)
// export API
func exportAPI() error {
http := gou.HTTP{
Name: "Widget Form API",
Description: "Widget Form API",
Version: share.VERSION,
Guard: "-",
Group: "__yao/chart",
Paths: []gou.Path{},
}
// GET /api/__yao/chart/:id/setting -> Default process: yao.chart.Xgen
path := gou.Path{
Label: "Setting",
Description: "Setting",
Path: "/:id/setting",
Method: "GET",
Process: "yao.chart.Setting",
In: []string{"$param.id"},
Out: gou.Out{Status: 200, Type: "application/json"},
}
http.Paths = append(http.Paths, path)
// GET /api/__yao/chart/:id/data -> Default process: yao.chart.Data $param.id :query
path = gou.Path{
Label: "Data",
Description: "Data",
Path: "/:id/data",
Method: "GET",
Process: "yao.chart.Data",
In: []string{"$param.id", ":query"},
Out: gou.Out{Status: 200, Type: "application/json"},
}
http.Paths = append(http.Paths, path)
// GET /api/__yao/chart/:id/component/:xpath/:method -> Default process: yao.chart.Component $param.id $param.xpath $param.method :query
path = gou.Path{
Label: "Component",
Description: "Component",
Path: "/:id/component/:xpath/:method",
Method: "GET",
Process: "yao.chart.Component",
In: []string{"$param.id", "$param.xpath", "$param.method", ":query"},
Out: gou.Out{Status: 200, Type: "application/json"},
}
http.Paths = append(http.Paths, path)
// api source
source, err := jsoniter.Marshal(http)
if err != nil {
return err
}
// load apis
_, err = gou.LoadAPIReturn(string(source), "widgets.chart")
return err
}