新增获取接口列表
This commit is contained in:
parent
9d94e367b3
commit
2e6df8c974
@ -55,6 +55,43 @@ func (r *AdminApi) GetApiPage(c *gin.Context) {
|
|||||||
responses.OkWithData(result, c)
|
responses.OkWithData(result, c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetApiList 获取api列表
|
||||||
|
func (r *AdminApi) GetApiList(c *gin.Context) {
|
||||||
|
apiRequest := requests.ApiRequest{}
|
||||||
|
if err := c.ShouldBind(&apiRequest.GetApiList); err != nil {
|
||||||
|
responses.FailWithMessage(err.Error(), c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 参数验证
|
||||||
|
if err := global.Validate.Struct(apiRequest.GetApiList); err != nil {
|
||||||
|
responses.FailWithMessage(utils.Translate(err), c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
adminApiDao := dao.AdminApiDao{}
|
||||||
|
|
||||||
|
maps := make(map[string]interface{})
|
||||||
|
if apiRequest.GetApiList.ApiName != "" {
|
||||||
|
maps["api_name"] = apiRequest.GetApiList.ApiName
|
||||||
|
}
|
||||||
|
adminApis, err := adminApiDao.GetAdminApiList(maps)
|
||||||
|
if err != nil {
|
||||||
|
responses.FailWithMessage(err.Error(), c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(adminApis) == 0 {
|
||||||
|
responses.Ok(c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理返回值
|
||||||
|
getApiPageResponses := apiResponse.GetApiListResponse(adminApis)
|
||||||
|
|
||||||
|
responses.OkWithData(getApiPageResponses, c)
|
||||||
|
}
|
||||||
|
|
||||||
// AddApi 新增接口
|
// AddApi 新增接口
|
||||||
func (r *AdminApi) AddApi(c *gin.Context) {
|
func (r *AdminApi) AddApi(c *gin.Context) {
|
||||||
apiRequest := requests.ApiRequest{}
|
apiRequest := requests.ApiRequest{}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package requests
|
|||||||
|
|
||||||
type ApiRequest struct {
|
type ApiRequest struct {
|
||||||
GetApiPage // 获取接口列表-分页
|
GetApiPage // 获取接口列表-分页
|
||||||
|
GetApiList // 获取接口列表
|
||||||
AddApi // 新增接口
|
AddApi // 新增接口
|
||||||
DeleteApi // 删除接口-批量
|
DeleteApi // 删除接口-批量
|
||||||
PutApi // 修改接口
|
PutApi // 修改接口
|
||||||
@ -16,6 +17,11 @@ type GetApiPage struct {
|
|||||||
PageSize int `json:"page_size" form:"page_size" label:"每页个数"`
|
PageSize int `json:"page_size" form:"page_size" label:"每页个数"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetApiList 获取接口列表
|
||||||
|
type GetApiList struct {
|
||||||
|
ApiName string `json:"api_name" form:"api_name" label:"api名称"`
|
||||||
|
}
|
||||||
|
|
||||||
// AddApi 新增接口
|
// AddApi 新增接口
|
||||||
type AddApi struct {
|
type AddApi struct {
|
||||||
ApiName string `json:"api_name" form:"api_name" validate:"required" label:"接口名称"`
|
ApiName string `json:"api_name" form:"api_name" validate:"required" label:"接口名称"`
|
||||||
@ -30,7 +36,5 @@ type DeleteApi struct {
|
|||||||
|
|
||||||
// PutApi 修改接口
|
// PutApi 修改接口
|
||||||
type PutApi struct {
|
type PutApi struct {
|
||||||
ApiName string `json:"api_name" form:"api_name" label:"api名称"`
|
ApiName string `json:"api_name" form:"api_name" label:"api名称"`
|
||||||
ApiMethod string `json:"api_method" form:"api_method" label:"请求类型"` // (put:修改 post:新增 get:获取 delete:删除)
|
|
||||||
ApiPath string `json:"api_path" form:"api_path" validate:"required" label:"接口路径"`
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,12 @@ type getApiPage struct {
|
|||||||
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getApiList 获取接口列表
|
||||||
|
type getApiList struct {
|
||||||
|
APIID string `json:"api_id"` // 主键id
|
||||||
|
APIName string `json:"api_name"` // api名称
|
||||||
|
}
|
||||||
|
|
||||||
// 接口详情
|
// 接口详情
|
||||||
type getApi struct {
|
type getApi struct {
|
||||||
APIID string `json:"api_id"` // 主键id
|
APIID string `json:"api_id"` // 主键id
|
||||||
@ -53,6 +59,27 @@ func GetApiPageResponse(adminApi []*model.AdminAPI) []getApiPage {
|
|||||||
return getApiPageResponses
|
return getApiPageResponses
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetApiListResponse 获取接口列表
|
||||||
|
func GetApiListResponse(adminApi []*model.AdminAPI) []getApiList {
|
||||||
|
// 处理返回值
|
||||||
|
getApiListResponses := make([]getApiList, len(adminApi))
|
||||||
|
|
||||||
|
if len(adminApi) > 0 {
|
||||||
|
for i, v := range adminApi {
|
||||||
|
// 将原始结构体转换为新结构体
|
||||||
|
getApiListResponse := getApiList{
|
||||||
|
APIID: strconv.Itoa(int(v.APIID)),
|
||||||
|
APIName: v.APIName,
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将转换后的结构体添加到新切片中
|
||||||
|
getApiListResponses[i] = getApiListResponse
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return getApiListResponses
|
||||||
|
}
|
||||||
|
|
||||||
// GetApiResponse 接口详情
|
// GetApiResponse 接口详情
|
||||||
func GetApiResponse(adminApi *model.AdminAPI) *getApi {
|
func GetApiResponse(adminApi *model.AdminAPI) *getApi {
|
||||||
return &getApi{
|
return &getApi{
|
||||||
|
|||||||
@ -138,6 +138,9 @@ func privateRouter(r *gin.Engine, api controller.Api) {
|
|||||||
// 获取接口列表-分页
|
// 获取接口列表-分页
|
||||||
apiGroup.GET("", api.AdminApi.GetApiPage)
|
apiGroup.GET("", api.AdminApi.GetApiPage)
|
||||||
|
|
||||||
|
// 获取接口列表
|
||||||
|
apiGroup.GET("/list", api.AdminApi.GetApiList)
|
||||||
|
|
||||||
// 新增接口
|
// 新增接口
|
||||||
apiGroup.POST("", api.AdminApi.AddApi)
|
apiGroup.POST("", api.AdminApi.AddApi)
|
||||||
|
|
||||||
|
|||||||
@ -161,27 +161,6 @@ func (r *ApiService) PutApi(c *gin.Context, requestApiId int64, putApiRequest re
|
|||||||
return false, errors.New("您当前为普通用户,无法修改接口")
|
return false, errors.New("您当前为普通用户,无法修改接口")
|
||||||
}
|
}
|
||||||
|
|
||||||
if putApiRequest.ApiPath != adminApi.APIPath && putApiRequest.ApiMethod != adminApi.APIMethod {
|
|
||||||
// 检测接口名称+请求方式
|
|
||||||
maps := make(map[string]interface{})
|
|
||||||
maps["api_path"] = putApiRequest.ApiPath
|
|
||||||
maps["api_method"] = putApiRequest.ApiMethod
|
|
||||||
adminApis, err := adminApiDao.GetAdminApiList(maps)
|
|
||||||
if len(adminApis) > 0 || err != nil {
|
|
||||||
return false, errors.New("接口重复")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if putApiRequest.ApiPath != adminApi.APIPath {
|
|
||||||
// 检测接口路径
|
|
||||||
pattern := `^/[\w/]+(\:\w+)?$`
|
|
||||||
r := regexp.MustCompile(pattern)
|
|
||||||
|
|
||||||
if !r.MatchString(putApiRequest.ApiPath) {
|
|
||||||
return false, errors.New("接口路径错误")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 开始事务
|
// 开始事务
|
||||||
tx := global.Db.Begin()
|
tx := global.Db.Begin()
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -193,8 +172,6 @@ func (r *ApiService) PutApi(c *gin.Context, requestApiId int64, putApiRequest re
|
|||||||
// 修改接口
|
// 修改接口
|
||||||
data := make(map[string]interface{})
|
data := make(map[string]interface{})
|
||||||
data["api_name"] = putApiRequest.ApiName
|
data["api_name"] = putApiRequest.ApiName
|
||||||
data["api_path"] = putApiRequest.ApiPath
|
|
||||||
data["api_method"] = putApiRequest.ApiMethod
|
|
||||||
err = adminApiDao.EditAdminApiById(tx, requestApiId, data)
|
err = adminApiDao.EditAdminApiById(tx, requestApiId, data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user