123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package api
- import (
- "encoding/json"
- "fmt"
- "gadmin/config"
- "gadmin/internal/admin/forms"
- "gadmin/utility/serializer"
- "github.com/gin-gonic/gin"
- "gopkg.in/go-playground/validator.v8"
- "io/ioutil"
- "net/http"
- "os"
- )
- func Ping(c *gin.Context) {
- c.JSON(200, serializer.Response{
- Code: 0,
- Msg: "Pong",
- })
- }
- func JsonResource(c *gin.Context) {
- var (
- req forms.JsonResource
- jsonMap []map[string]interface{}
- URL = os.Getenv("ADMIN_JSON_RESOURCE_URL")
- )
- if err := c.ShouldBind(&req); err != nil {
- c.JSON(200, serializer.ParamErr(err.Error(), nil))
- return
- }
- URL = URL + req.Version + "/" + req.Name
- resp, err := http.Get(URL)
- if err != nil {
- c.JSON(200, serializer.ParamErr(err.Error(), nil))
- return
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- c.JSON(200, serializer.ParamErr(err.Error(), nil))
- return
- }
- if err = json.Unmarshal(body, &jsonMap); err != nil {
- c.JSON(200, serializer.ParamErr(err.Error(), nil))
- return
- }
- c.JSON(200, jsonMap)
- }
- func ErrorResponse(err error) serializer.Response {
- if ve, ok := err.(validator.ValidationErrors); ok {
- for _, e := range ve {
- field := config.T(fmt.Sprintf("Field.%s", e.Field))
- tag := config.T(fmt.Sprintf("Tag.Valid.%s", e.Tag))
- return serializer.ParamErr(
- fmt.Sprintf("%s%s", field, tag),
- err,
- )
- }
- }
- if _, ok := err.(*json.UnmarshalTypeError); ok {
- return serializer.ParamErr("JSON类型不匹配", err)
- }
- return serializer.ParamErr("参数错误", err)
- }
|