feat: 请求响应结构体定义使用 $ref, 压缩文档体积

This commit is contained in:
2026-01-07 12:09:37 +08:00
parent cae403fddf
commit 55238e0de8

View File

@@ -208,13 +208,18 @@ func (g *Generate) AddApiDoc(docFlag string, apiMeta define.UriConfig, request a
Value: &openapi3.RequestBody{ Value: &openapi3.RequestBody{
Extensions: nil, Extensions: nil,
Origin: nil, Origin: nil,
Description: "", Description: "接口请求数据",
Required: false, Required: true,
Content: map[string]*openapi3.MediaType{ Content: map[string]*openapi3.MediaType{
consts.MimeTypeJson: { consts.MimeTypeJson: {
Extensions: nil, Extensions: nil,
Origin: nil, Origin: nil,
Schema: schemaData, Schema: &openapi3.SchemaRef{
Extensions: nil,
Origin: nil,
Ref: "#/components/schemas/" + strings.TrimLeft(requestType.String(), "*"),
Value: nil,
},
Example: nil, Example: nil,
Examples: nil, Examples: nil,
Encoding: nil, Encoding: nil,
@@ -230,13 +235,12 @@ func (g *Generate) AddApiDoc(docFlag string, apiMeta define.UriConfig, request a
if _, exist := g.docTable[docFlag].Components.Schemas[requestTypeStr]; !exist { if _, exist := g.docTable[docFlag].Components.Schemas[requestTypeStr]; !exist {
g.docTable[docFlag].Components.Schemas[requestTypeStr] = schemaData g.docTable[docFlag].Components.Schemas[requestTypeStr] = schemaData
} }
// 冗余处理结束
}
responseTypeStr := responseType.String() responseTypeStr := responseType.String()
if _, exist := g.docTable[docFlag].Components.Schemas[responseTypeStr]; !exist { if _, exist := g.docTable[docFlag].Components.Schemas[responseTypeStr]; !exist {
g.docTable[docFlag].Components.Schemas[responseTypeStr] = GenerateOpenAPISchema(responseType) g.docTable[docFlag].Components.Schemas[responseTypeStr] = GenerateOpenAPISchema(responseType)
} }
// 冗余处理结束
}
desc := "请求成功" desc := "请求成功"
apiOperate.Responses.Set(fmt.Sprintf("%v", http.StatusOK), &openapi3.ResponseRef{ apiOperate.Responses.Set(fmt.Sprintf("%v", http.StatusOK), &openapi3.ResponseRef{
Extensions: nil, Extensions: nil,
@@ -251,7 +255,12 @@ func (g *Generate) AddApiDoc(docFlag string, apiMeta define.UriConfig, request a
consts.MimeTypeJson: { consts.MimeTypeJson: {
Extensions: nil, Extensions: nil,
Origin: nil, Origin: nil,
Schema: GenerateOpenAPISchema(responseType), Schema: &openapi3.SchemaRef{
Extensions: nil,
Origin: nil,
Ref: "#/components/schemas/" + strings.TrimLeft(responseTypeStr, "*"),
Value: nil,
},
Example: nil, Example: nil,
Examples: nil, Examples: nil,
Encoding: nil, Encoding: nil,