feat: 支持配置冗余存储components是否开启
This commit is contained in:
@@ -125,6 +125,12 @@ func NewOpenApiDoc(optionFunc ...OptionFunc) *openapi3.T {
|
|||||||
// Generate 生成 OpenApi 标准规范的文档
|
// Generate 生成 OpenApi 标准规范的文档
|
||||||
type Generate struct {
|
type Generate struct {
|
||||||
docTable map[string]*openapi3.T
|
docTable map[string]*openapi3.T
|
||||||
|
enableRedundantStorageComponents bool // 冗余存储
|
||||||
|
}
|
||||||
|
|
||||||
|
// EnableRedundantStorageComponents 开启冗余存储
|
||||||
|
func (g *Generate) EnableRedundantStorageComponents() {
|
||||||
|
g.enableRedundantStorageComponents = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// DocData 获取一个文档数据
|
// DocData 获取一个文档数据
|
||||||
@@ -167,7 +173,6 @@ func (g *Generate) AddApiDoc(docFlag string, apiMeta define.UriConfig, request a
|
|||||||
|
|
||||||
schemaData := GenerateOpenAPISchema(requestType)
|
schemaData := GenerateOpenAPISchema(requestType)
|
||||||
apiOperate, isRead := g.initApiConfig(docFlag, apiMeta)
|
apiOperate, isRead := g.initApiConfig(docFlag, apiMeta)
|
||||||
//requestTypeStr := requestType.String()
|
|
||||||
if isRead {
|
if isRead {
|
||||||
if nil != schemaData {
|
if nil != schemaData {
|
||||||
for paramName, paramConfig := range schemaData.Value.Properties {
|
for paramName, paramConfig := range schemaData.Value.Properties {
|
||||||
@@ -219,13 +224,19 @@ func (g *Generate) AddApiDoc(docFlag string, apiMeta define.UriConfig, request a
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if _, exist := g.docTable[docFlag].Components.Schemas[requestTypeStr]; !exist {
|
if g.enableRedundantStorageComponents {
|
||||||
|
// 此处是冗余 components 设置, 便于查看结构体, 不冗余文档也可正常解析
|
||||||
|
requestTypeStr := requestType.String()
|
||||||
|
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,
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ func TestGenerate_AddApiDoc(t *testing.T) {
|
|||||||
UpdatedAt *time.Time `json:"updated_at,omitempty" description:"更新时间"`
|
UpdatedAt *time.Time `json:"updated_at,omitempty" description:"更新时间"`
|
||||||
Category *Category `json:"category,omitempty" description:"分类"`
|
Category *Category `json:"category,omitempty" description:"分类"`
|
||||||
}
|
}
|
||||||
|
DocManager.EnableRedundantStorageComponents() // 启用 components 冗余存储
|
||||||
docFlag := "demo"
|
docFlag := "demo"
|
||||||
DocManager.NewOpenApiDoc(docFlag, WithSecurity(&openapi3.SecuritySchemes{
|
DocManager.NewOpenApiDoc(docFlag, WithSecurity(&openapi3.SecuritySchemes{
|
||||||
"Token-Auth": {
|
"Token-Auth": {
|
||||||
|
|||||||
Reference in New Issue
Block a user