代码拉取完成,页面将自动刷新
package arc
import (
"reflect"
"sync"
"github.com/gin-gonic/gin"
)
var responderList []Responder
var once_resp_list sync.Once
func get_resp_list() []Responder {
once_resp_list.Do(func() {
responderList = []Responder{
ResponderForJson(nil),
}
})
return responderList
}
type Responder interface {
RespondTo() gin.HandlerFunc
}
type Json interface{}
type ResponderForJson func(ctx *gin.Context) Json
func (r ResponderForJson) RespondTo() gin.HandlerFunc {
return func(ctx *gin.Context) {
// ctx.String(200,r(ctx))
ctx.JSON(200, r(ctx))
}
}
func Convert(handler interface{}) gin.HandlerFunc {
h_ref := reflect.ValueOf(handler)
for _, resp := range get_resp_list() {
r_ref := reflect.TypeOf(resp)
if h_ref.Type().ConvertibleTo(r_ref) {
return h_ref.Convert(r_ref).Interface().(Responder).RespondTo()
}
}
return nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。