From b5dbc330fc4c4a180a1e46d07ef0408a045bc038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Wed, 26 Feb 2025 11:10:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=87=E6=A1=A3=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=93=E6=9E=84=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- define/openapi.go | 6 +++--- parser_test.go | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/define/openapi.go b/define/openapi.go index 52bd43f..d8a83d8 100644 --- a/define/openapi.go +++ b/define/openapi.go @@ -132,7 +132,7 @@ type Schema struct { Required []string `json:"required,omitempty"` // 必传属性列表 Enum []any `json:"enum,omitempty"` // 枚举值列表 XEnumDescription map[string]string `json:"x-enumDescriptions,omitempty"` // 枚举值描述的扩展, redoc-free支持 - Type string `json:"type,omitempty"` // 类型 + Type any `json:"type,omitempty"` // 类型 (string | []string) Items *PropertyXOf `json:"items,omitempty"` // items 必须存在如果 type 的值是 array。 OneOf []*PropertyXOf `json:"oneOf,omitempty"` // type 是一个对象, allOf 指向对象描述 Ref string `json:"$ref,omitempty"` // 类型引用 @@ -150,7 +150,7 @@ type Schema struct { // // Date : 17:05 2024/7/19 type Property struct { - Type string `json:"type,omitempty"` // 数据类型, swagger本身的定义 + Type any `json:"type,omitempty"` // 数据类型(string | []string), swagger本身的定义 Format string `json:"format,omitempty"` // 对应编程语言中的数据类型描述 Enum []any `json:"enum,omitempty"` // 枚举值列表 XEnumDescription map[string]string `json:"x-enumDescriptions,omitempty"` // 枚举值描述的扩展, redoc-free支持 @@ -165,7 +165,7 @@ type Property struct { OneOf []*PropertyXOf `json:"oneOf,omitempty"` // type 是一个对象, allOf 指向对象描述 AnyOf []*PropertyXOf `json:"anyOf,omitempty"` // type 是一个对象, allOf 指向对象描述 Items *PropertyXOf `json:"items,omitempty"` // items 必须存在如果 type 的值是 array。 - AdditionalProperties *PropertyXOf `json:"additionalProperties,omitempty"` // additionalProperties 是一个用于描述模型中包含未在属性列表中定义的额外属性的选项。它允许接受任意的一个或多个键值对。它的作用是为了在模型定义中包含未知或动态属性。通常,在设计 API 时,我们无法预先知道 API 用户会传递什么样的额外属性,这时就可以使用 additionalProperties 功能来灵活地处理这些未知属性。 + AdditionalProperties any `json:"additionalProperties,omitempty"` // additionalProperties(PropertyXOf | bool) 是一个用于描述模型中包含未在属性列表中定义的额外属性的选项。它允许接受任意的一个或多个键值对。它的作用是为了在模型定义中包含未知或动态属性。通常,在设计 API 时,我们无法预先知道 API 用户会传递什么样的额外属性,这时就可以使用 additionalProperties 功能来灵活地处理这些未知属性。 Properties map[string]*Property `json:"properties,omitempty"` // type = object 时, 定义对象属性 Ref string `json:"$ref,omitempty"` // 对描述的引用 } diff --git a/parser_test.go b/parser_test.go index 529c13a..9211b43 100644 --- a/parser_test.go +++ b/parser_test.go @@ -94,3 +94,8 @@ func Test_parser_Openapi3(t *testing.T) { byteData, _ := json.Marshal(g.docData) fmt.Println(string(byteData)) } + +func Test_parse_Openapi3_doc(t *testing.T) { + res, err := ParseOpenapi3("http://localhost:10990/static-server/github-openapi.json", "") + fmt.Println(res, err) +}