From adce44dc1fab7f68e8ed18001be4dcd5adfa11a5 Mon Sep 17 00:00:00 2001 From: lq Date: Tue, 3 Aug 2021 17:24:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84:=E6=8E=A5=E5=8F=A3=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E6=96=B0=E5=A2=9E=E8=AE=B0=E5=BD=95-=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3=E6=B3=A8=E9=87=8A=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=90=8D=E7=A7=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/sys_api.go | 20 +++++++++++++++++++- go.mod | 1 + 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/admin/models/sys_api.go b/app/admin/models/sys_api.go index dc85db21..8654b446 100644 --- a/app/admin/models/sys_api.go +++ b/app/admin/models/sys_api.go @@ -1,10 +1,14 @@ package models import ( + "bytes" "encoding/json" "fmt" + "io/ioutil" + "regexp" "strings" + "github.com/bitly/go-simplejson" "github.com/go-admin-team/go-admin-core/sdk" "github.com/go-admin-team/go-admin-core/sdk/runtime" "github.com/go-admin-team/go-admin-core/storage" @@ -58,8 +62,22 @@ func SaveSysApi(message storage.Messager) (err error) { strings.Contains(v.RelativePath, "/static/") || strings.Contains(v.RelativePath, "/form-generator/") || strings.Contains(v.RelativePath, "/sys/tables") { + + // 根据接口方法注释里的@Summary填充接口名称,适用于代码生成器 + // 可在此处增加配置路径前缀的if判断,只对代码生成的自建应用进行定向的接口名称填充 + busType := "BUS" // 默认"业务"类型 + jsonFile, _ := ioutil.ReadFile("docs/swagger.json") + jsonData, _ := simplejson.NewFromReader(bytes.NewReader(jsonFile)) + urlPath := v.RelativePath + idPatten := "(.*)/:(\\w+)" // 正则替换,把:id换成{id} + reg, _ := regexp.Compile(idPatten) + if reg.MatchString(urlPath) { + urlPath = reg.ReplaceAllString(v.RelativePath, "${1}/{${2}}") // 把:id换成{id} + } + apiTitle, _ := jsonData.Get("paths").Get(urlPath).Get(strings.ToLower(v.HttpMethod)).Get("summary").String() + err := d.Debug().Where(SysApi{Path: v.RelativePath, Action: v.HttpMethod}). - Attrs(SysApi{Handle: v.Handler}). + Attrs(SysApi{Handle: v.Handler, Title: apiTitle, Type: busType}). FirstOrCreate(&SysApi{}). //Update("handle", v.Handler). Error diff --git a/go.mod b/go.mod index cc91399a..37d676c2 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 github.com/alibaba/sentinel-golang v0.6.1 github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5 + github.com/bitly/go-simplejson v0.5.0 github.com/bytedance/go-tagexpr/v2 v2.7.12 github.com/casbin/casbin/v2 v2.25.1 github.com/gin-gonic/gin v1.7.2