代码拉取完成,页面将自动刷新
package service
import (
"fmt"
"github.com/fagongzi/gateway/pkg/pb/metapb"
"github.com/fagongzi/grpcx"
"github.com/fagongzi/log"
"github.com/labstack/echo"
)
func initRoutingRouter(server *echo.Echo) {
server.GET(fmt.Sprintf("/%s%s", apiVersion, "/routings/:id"),
grpcx.NewGetHTTPHandle(idParamFactory, getRoutingHandler))
server.DELETE(fmt.Sprintf("/%s%s", apiVersion, "/routings/:id"),
grpcx.NewGetHTTPHandle(idParamFactory, deleteRoutingHandler))
server.PUT(fmt.Sprintf("/%s%s", apiVersion, "/routings"),
grpcx.NewJSONBodyHTTPHandle(putRoutingFactory, postRoutingHandler))
server.GET(fmt.Sprintf("/%s%s", apiVersion, "/routings"),
grpcx.NewGetHTTPHandle(limitQueryFactory, listRoutingHandler))
}
func postRoutingHandler(value interface{}) (*grpcx.JSONResult, error) {
id, err := Store.PutRouting(value.(*metapb.Routing))
if err != nil {
log.Errorf("api-routing-put: req %+v, errors:%+v", value, err)
return nil, err
}
return &grpcx.JSONResult{Data: id}, nil
}
func deleteRoutingHandler(value interface{}) (*grpcx.JSONResult, error) {
err := Store.RemoveRouting(value.(uint64))
if err != nil {
log.Errorf("api-routing-delete: req %+v, errors:%+v", value, err)
return nil, err
}
return &grpcx.JSONResult{}, nil
}
func getRoutingHandler(value interface{}) (*grpcx.JSONResult, error) {
value, err := Store.GetRouting(value.(uint64))
if err != nil {
log.Errorf("api-routing-delete: req %+v, errors:%+v", value, err)
return nil, err
}
return &grpcx.JSONResult{Data: value}, nil
}
func putRoutingFactory() interface{} {
return &metapb.Routing{}
}
func listRoutingHandler(value interface{}) (*grpcx.JSONResult, error) {
query := value.(*limitQuery)
var values []*metapb.Routing
err := Store.GetRoutings(limit, func(data interface{}) error {
v := data.(*metapb.Routing)
if int64(len(values)) < query.limit && v.ID > query.afterID {
values = append(values, v)
}
return nil
})
if err != nil {
log.Errorf("api-routing-list-get: req %+v, errors:%+v", value, err)
return nil, err
}
return &grpcx.JSONResult{Data: values}, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。