func (c *orgController) GetWithPathVariable(at struct{ at.GetMapping `value:"/{id}/and/{name}"` },
	id int, name string) string {
	return fmt.Sprintf("https://hidevops.io/%v/%v", id, name)
}
GetWithPathParamIdAndName
at.GetMapping is an annotation to define request mapping for http method GET,
package main
import (
	"fmt"
	"hidevops.io/hiboot/pkg/app"
	"hidevops.io/hiboot/pkg/app/web"
	"hidevops.io/hiboot/pkg/at"
	"hidevops.io/hiboot/pkg/model"
	"hidevops.io/hiboot/pkg/starter/actuator"
	"time"
)
type UserController struct {
	at.RestController
	at.RequestMapping `value:"/user"`
}
type UserVO struct {
	Username string `json:"username" validate:"required"`
	Password string `json:"password" validate:"required"`
}
type User struct {
	ID int `json:"id"`
	UserVO
	model.BaseData
}
type UserRequest struct {
	at.RequestBody
	UserVO
}
type UserResponse struct {
	at.ResponseBody
	model.BaseResponse
}
func newUserController() *UserController {
	return &UserController{}
}
func (c *UserController) CreateUser(at struct{ at.PostMapping `value:"/"` },
	request *UserRequest) (response *UserResponse, err error) {
	response = new(UserResponse)
	user := new(User)
	user.ID = 123456
	user.Username = request.Username
	user.Password = request.Password
	user.CreatedAt = time.Now()
	user.UpdatedAt = time.Now()
	user.IsDeleted = false
	response.SetData(user)
	return
}
func (c *UserController) GetUserByPathVariable(at struct{ at.GetMapping `value:"/{id:int}/and/{name}"` },
	id int, name string) (response *UserResponse, err error) {
	response = new(UserResponse)
	user := new(User)
	user.ID = id
	user.Username = name
	user.Password = "******"
	user.CreatedAt = time.Now()
	user.UpdatedAt = time.Now()
	user.IsDeleted = false
	response.SetData(user)
	return
}
func (c *UserController) Patch(at struct{ at.PatchMapping `value:"/{id}"` },
	id int) (response *UserResponse, err error) {
	response = new(UserResponse)
	return
}
func (c *UserController) DeleteUser(at struct{ at.DeleteMapping `value:"/{id:int}"` },
	id int) (response *UserResponse, err error) {
	response = new(UserResponse)
	return
}
func (c *UserController) ListUser(at struct{ at.GetMapping `value:"/"` }) (response *UserResponse, err error) {
	response = new(UserResponse)
	user := new(User)
	user.ID = 101010
	user.Username = "Donald"
	user.Password = "Trump"
	user.CreatedAt = time.Now()
	user.UpdatedAt = time.Now()
	user.IsDeleted = false
	users := []*User{
		user,
	}
	response.SetData(users)
	return
}
type orgController struct {
	at.RestController
	at.RequestMapping `value:"/organization"`
}
func newOrgController() *orgController {
	return new(orgController)
}
func (c *orgController) GetOfficialSite(at struct{ at.GetMapping `value:"/official-site"` }) string {
	return "https://hidevops.io"
}