api文档完成

This commit is contained in:
Liujian
2024-08-30 09:55:56 +08:00
parent f3a00814a5
commit f570c8b174
75 changed files with 2206 additions and 753 deletions
+17 -14
View File
@@ -1,43 +1,46 @@
package api
import (
api_doc_dto "github.com/APIParkLab/APIPark/module/api-doc/dto"
"reflect"
"github.com/gin-gonic/gin"
"github.com/eolinker/go-common/autowire"
api_dto "github.com/APIParkLab/APIPark/module/api/dto"
)
type IAPIController interface {
// Detail 获取API详情
Detail(ctx *gin.Context, serviceId string, apiId string) (*api_dto.ApiDetail, error)
// SimpleDetail 获取API简要详情
SimpleDetail(ctx *gin.Context, serviceId string, apiId string) (*api_dto.ApiSimpleDetail, error)
// Search 获取API列表
Search(ctx *gin.Context, keyword string, serviceId string) ([]*api_dto.ApiItem, error)
// SimpleSearch 获取API简要列表
SimpleSearch(ctx *gin.Context, keyword string, serviceId string) ([]*api_dto.ApiSimpleItem, error)
//SimpleList(ctx *gin.Context, serviceId string) ([]*api_dto.ApiSimpleItem, error)
// Create 创建API
Create(ctx *gin.Context, serviceId string, dto *api_dto.CreateApi) (*api_dto.ApiSimpleDetail, error)
// Edit 编辑API
Edit(ctx *gin.Context, serviceId string, apiId string, dto *api_dto.EditApi) (*api_dto.ApiSimpleDetail, error)
// Delete 删除API
Delete(ctx *gin.Context, serviceId string, apiId string) error
// Copy 复制API
Copy(ctx *gin.Context, serviceId string, apiId string, dto *api_dto.CreateApi) (*api_dto.ApiSimpleDetail, error)
// ApiDocDetail 获取API文档详情
ApiDocDetail(ctx *gin.Context, serviceId string, apiId string) (*api_dto.ApiDocDetail, error)
// ApiProxyDetail 获取API代理详情
ApiProxyDetail(ctx *gin.Context, serviceId string, apiId string) (*api_dto.ApiProxyDetail, error)
// Prefix 获取API前缀
Prefix(ctx *gin.Context, serviceId string) (string, bool, error)
}
type IAPIDocController interface {
// UpdateDoc 更新API文档
UpdateDoc(ctx *gin.Context, serviceId string, input *api_doc_dto.UpdateDoc) (*api_doc_dto.ApiDocDetail, error)
// GetDoc 获取API文档
GetDoc(ctx *gin.Context, serviceId string) (*api_doc_dto.ApiDocDetail, error)
UploadDoc(ctx *gin.Context, serviceId string) (*api_doc_dto.ApiDocDetail, error)
}
func init() {
autowire.Auto[IAPIController](func() reflect.Value {
return reflect.ValueOf(new(imlAPIController))
})
autowire.Auto[IAPIDocController](func() reflect.Value {
return reflect.ValueOf(new(imlAPIDocController))
})
}
+38 -24
View File
@@ -2,8 +2,11 @@ package api
import (
"github.com/APIParkLab/APIPark/module/api"
api_doc "github.com/APIParkLab/APIPark/module/api-doc"
api_doc_dto "github.com/APIParkLab/APIPark/module/api-doc/dto"
api_dto "github.com/APIParkLab/APIPark/module/api/dto"
"github.com/gin-gonic/gin"
"io"
)
var _ IAPIController = (*imlAPIController)(nil)
@@ -12,26 +15,14 @@ type imlAPIController struct {
module api.IApiModule `autowired:""`
}
//func (i *imlAPIController) SimpleList(ctx *gin.Context, serviceId string) ([]*api_dto.ApiSimpleItem, error) {
// return i.module.SimpleList(ctx, serviceId)
//}
func (i *imlAPIController) Detail(ctx *gin.Context, serviceId string, apiId string) (*api_dto.ApiDetail, error) {
return i.module.Detail(ctx, serviceId, apiId)
}
func (i *imlAPIController) SimpleDetail(ctx *gin.Context, serviceId string, apiId string) (*api_dto.ApiSimpleDetail, error) {
return i.module.SimpleDetail(ctx, serviceId, apiId)
}
func (i *imlAPIController) Search(ctx *gin.Context, keyword string, serviceId string) ([]*api_dto.ApiItem, error) {
return i.module.Search(ctx, keyword, serviceId)
}
func (i *imlAPIController) SimpleSearch(ctx *gin.Context, keyword string, serviceId string) ([]*api_dto.ApiSimpleItem, error) {
return i.module.SimpleSearch(ctx, keyword, serviceId)
}
func (i *imlAPIController) Create(ctx *gin.Context, serviceId string, dto *api_dto.CreateApi) (*api_dto.ApiSimpleDetail, error) {
return i.module.Create(ctx, serviceId, dto)
}
@@ -44,18 +35,6 @@ func (i *imlAPIController) Delete(ctx *gin.Context, serviceId string, apiId stri
return i.module.Delete(ctx, serviceId, apiId)
}
func (i *imlAPIController) Copy(ctx *gin.Context, serviceId string, apiId string, dto *api_dto.CreateApi) (*api_dto.ApiSimpleDetail, error) {
return i.module.Copy(ctx, serviceId, apiId, dto)
}
func (i *imlAPIController) ApiDocDetail(ctx *gin.Context, serviceId string, apiId string) (*api_dto.ApiDocDetail, error) {
return i.module.ApiDocDetail(ctx, serviceId, apiId)
}
func (i *imlAPIController) ApiProxyDetail(ctx *gin.Context, serviceId string, apiId string) (*api_dto.ApiProxyDetail, error) {
return i.module.ApiProxyDetail(ctx, serviceId, apiId)
}
func (i *imlAPIController) Prefix(ctx *gin.Context, serviceId string) (string, bool, error) {
prefix, err := i.module.Prefix(ctx, serviceId)
if err != nil {
@@ -63,3 +42,38 @@ func (i *imlAPIController) Prefix(ctx *gin.Context, serviceId string) (string, b
}
return prefix, true, nil
}
var _ IAPIDocController = (*imlAPIDocController)(nil)
type imlAPIDocController struct {
module api_doc.IAPIDocModule `autowired:""`
}
func (i *imlAPIDocController) UpdateDoc(ctx *gin.Context, serviceId string, input *api_doc_dto.UpdateDoc) (*api_doc_dto.ApiDocDetail, error) {
return i.module.UpdateDoc(ctx, serviceId, input)
}
func (i *imlAPIDocController) GetDoc(ctx *gin.Context, serviceId string) (*api_doc_dto.ApiDocDetail, error) {
return i.module.GetDoc(ctx, serviceId)
}
func (i *imlAPIDocController) UploadDoc(ctx *gin.Context, serviceId string) (*api_doc_dto.ApiDocDetail, error) {
// 获取文件内容
fileHeader, err := ctx.FormFile("doc")
if err != nil {
return nil, err
}
file, err := fileHeader.Open()
if err != nil {
return nil, err
}
content, err := io.ReadAll(file)
if err != nil {
return nil, err
}
return i.module.UpdateDoc(ctx, serviceId, &api_doc_dto.UpdateDoc{
Content: string(content),
})
}