routes/route.go
package routes
import (
"fmt"
"gin/app/requests"
"net/http"
"github.com/gin-gonic/gin"
)
func RegisterAPIRoutes(r *gin.Engine) {
v1 := r.Group("/v1")
v1.GET("hello", func(c *gin.Context) {
fmt.Println("helloword")
})
v1.POST("post", func(c *gin.Context) {
request := requests.Params{}
requestResult := requests.Validator(&request, c)
if requestResult != nil {
c.JSON(http.StatusOK, gin.H{
"msg": requestResult.Error(),
})
return
}
c.JSON(http.StatusOK, "succes")
})
}
requests/test_request.go
package requests
import (
"github.com/gin-gonic/gin"
)
type Params struct {
Age uint8 `json:"age" binding:"gte=1,lte=130"`
Name string `json:"name" binding:"required"`
Email string `json:"email" binding:"required,email"`
Password string `json:"password" binding:"required"`
RePassword string `json:"re_password" binding:"required,eqfield=Password"`
}
func Validator(params interface{}, c *gin.Context) (err error) {
return c.ShouldBind(¶ms)
}