feat: 完胜增加schema逻辑
This commit is contained in:
@@ -8,6 +8,8 @@
|
||||
package openapi
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
|
||||
"git.zhangdeman.cn/zhangdeman/consts"
|
||||
"github.com/getkin/kin-openapi/openapi3"
|
||||
)
|
||||
@@ -17,7 +19,7 @@ func NewGenerate() *Generate {
|
||||
return &Generate{
|
||||
doc: &openapi3.T{
|
||||
Extensions: map[string]any{},
|
||||
OpenAPI: "openapi",
|
||||
OpenAPI: "3.1.0",
|
||||
Components: &openapi3.Components{
|
||||
Extensions: map[string]any{},
|
||||
Origin: &openapi3.Origin{
|
||||
@@ -106,5 +108,34 @@ type Generate struct {
|
||||
|
||||
// AddApiDoc 添加接口文档
|
||||
func (g *Generate) AddApiDoc(request any, response any) error {
|
||||
return nil
|
||||
var (
|
||||
err error
|
||||
requestType reflect.Type
|
||||
responseType reflect.Type
|
||||
ok bool
|
||||
)
|
||||
|
||||
// 初始化请求数据与响应数据类型
|
||||
if requestType, ok = request.(reflect.Type); !ok {
|
||||
requestType = reflect.TypeOf(request)
|
||||
if requestType.Kind() == reflect.Ptr {
|
||||
requestType = requestType.Elem()
|
||||
}
|
||||
}
|
||||
|
||||
if responseType, ok = response.(reflect.Type); !ok {
|
||||
responseType = reflect.TypeOf(response)
|
||||
if responseType.Kind() == reflect.Ptr {
|
||||
responseType = responseType.Elem()
|
||||
}
|
||||
}
|
||||
requestTypeStr := requestType.String()
|
||||
if _, exist := g.doc.Components.Schemas[requestTypeStr]; !exist {
|
||||
g.doc.Components.Schemas[requestTypeStr] = GenerateOpenAPISchema(requestType)
|
||||
}
|
||||
responseTypeStr := requestType.String()
|
||||
if _, exist := g.doc.Components.Schemas[responseTypeStr]; !exist {
|
||||
g.doc.Components.Schemas[responseTypeStr] = GenerateOpenAPISchema(responseType)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user