add api: /simple/service/apis

This commit is contained in:
Liujian
2024-11-27 00:34:24 +08:00
parent 601663b658
commit b5671d14a4
7 changed files with 39 additions and 4 deletions
+6 -1
View File
@@ -1,12 +1,13 @@
package router
import (
"io"
api_doc "github.com/APIParkLab/APIPark/module/api-doc"
api_doc_dto "github.com/APIParkLab/APIPark/module/api-doc/dto"
"github.com/APIParkLab/APIPark/module/router"
router_dto "github.com/APIParkLab/APIPark/module/router/dto"
"github.com/gin-gonic/gin"
"io"
)
var _ IRouterController = (*imlAPIController)(nil)
@@ -15,6 +16,10 @@ type imlAPIController struct {
module router.IRouterModule `autowired:""`
}
func (i *imlAPIController) Simple(ctx *gin.Context, input *router_dto.InputSimpleAPI) ([]*router_dto.SimpleItem, error) {
return i.module.SimpleAPIs(ctx, input)
}
func (i *imlAPIController) Detail(ctx *gin.Context, serviceId string, apiId string) (*router_dto.Detail, error) {
return i.module.Detail(ctx, serviceId, apiId)
}
+3 -1
View File
@@ -1,9 +1,10 @@
package router
import (
api_doc_dto "github.com/APIParkLab/APIPark/module/api-doc/dto"
"reflect"
api_doc_dto "github.com/APIParkLab/APIPark/module/api-doc/dto"
"github.com/gin-gonic/gin"
"github.com/eolinker/go-common/autowire"
@@ -24,6 +25,7 @@ type IRouterController interface {
Delete(ctx *gin.Context, serviceId string, apiId string) error
// Prefix 获取API前缀
Prefix(ctx *gin.Context, serviceId string) (string, bool, error)
Simple(ctx *gin.Context, input *router_dto.InputSimpleAPI) ([]*router_dto.SimpleItem, error)
}
type IAPIDocController interface {
+4
View File
@@ -102,3 +102,7 @@ type ListInput struct {
type UpdateDoc struct {
Content string `json:"content"`
}
type InputSimpleAPI struct {
Services []string `json:"services"`
}
+2 -2
View File
@@ -26,8 +26,8 @@ type Item struct {
type SimpleItem struct {
Id string `json:"id"`
Methods []string `json:"methods"`
//Name string `json:"name"`
Path string `json:"request_path"`
Name string `json:"name"`
Path string `json:"request_path"`
}
type Detail struct {
+22
View File
@@ -46,6 +46,28 @@ type imlRouterModule struct {
transaction store.ITransaction `autowired:""`
}
func (i *imlRouterModule) SimpleAPIs(ctx context.Context, input *router_dto.InputSimpleAPI) ([]*router_dto.SimpleItem, error) {
list, err := i.apiService.ListForServices(ctx, input.Services...)
if err != nil {
return nil, err
}
apiInfos, err := i.apiService.ListInfo(ctx, utils.SliceToSlice(list, func(s *api.API) string {
return s.UUID
})...)
if err != nil {
return nil, err
}
return utils.SliceToSlice(apiInfos, func(item *api.Info) *router_dto.SimpleItem {
return &router_dto.SimpleItem{
Id: item.UUID,
Name: item.Name,
Methods: item.Methods,
Path: item.Path,
}
}), nil
}
func (i *imlRouterModule) ExportAll(ctx context.Context) ([]*router_dto.Export, error) {
apiList, err := i.apiService.ListInfo(ctx)
+1
View File
@@ -31,6 +31,7 @@ type IRouterModule interface {
// Prefix 获取API前缀
Prefix(ctx context.Context, serviceId string) (string, error)
SimpleAPIs(ctx context.Context, input *router_dto.InputSimpleAPI) ([]*router_dto.SimpleItem, error)
//ExportAll(ctx context.Context) ([]*router_dto.Export, error)
}
+1
View File
@@ -9,6 +9,7 @@ import (
func (p *plugin) apiApis() []pm3.Api {
return []pm3.Api{
pm3.CreateApiWidthDoc(http.MethodPost, "/api/v1/simple/service/apis", []string{"context", "body"}, []string{"apis"}, p.routerController.Simple),
pm3.CreateApiWidthDoc(http.MethodGet, "/api/v1/service/routers", []string{"context", "query:keyword", "query:service"}, []string{"routers"}, p.routerController.Search, access.SystemWorkspaceServiceViewAll, access.TeamServiceApiView),
pm3.CreateApiWidthDoc(http.MethodGet, "/api/v1/service/router/detail", []string{"context", "query:service", "query:router"}, []string{"router"}, p.routerController.Detail, access.SystemWorkspaceServiceViewAll, access.TeamServiceApiView),
pm3.CreateApiWidthDoc(http.MethodPost, "/api/v1/service/router", []string{"context", "query:service", "body"}, []string{"router"}, p.routerController.Create, access.SystemWorkspaceServiceManagerAll, access.TeamServiceApiManager),