From d7cfa5fdd3ef2c53cbd662939e9f141493ae8866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 14 Feb 2025 11:30:12 +0800 Subject: [PATCH] update generate --- generate.go | 2 ++ parser_test.go | 24 +++++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/generate.go b/generate.go index c97f6ed..e644edd 100644 --- a/generate.go +++ b/generate.go @@ -264,6 +264,8 @@ func (g *Generate) AddApiFromInAndOut(paramType reflect.Type, resultType reflect g.docData.Paths[baseCfg.Uri].Options = cfg case http.MethodTrace: g.docData.Paths[baseCfg.Uri].Trace = cfg + default: + panic("unknown method: " + baseCfg.Method) } return nil } diff --git a/parser_test.go b/parser_test.go index 0d6ab83..806a7b8 100644 --- a/parser_test.go +++ b/parser_test.go @@ -10,6 +10,7 @@ package api_doc import ( "encoding/json" "fmt" + "git.zhangdeman.cn/gateway/api-doc/define" "git.zhangdeman.cn/zhangdeman/serialize" "reflect" "testing" @@ -25,7 +26,12 @@ type Meta struct { // Date : 17:55 2024/7/19 func Test_parser_Openapi3(t *testing.T) { type User struct { - Meta `json:"-" deprecated:"true" path:"/user/detail" method:"POST" desc:"测试接口" tag:"用户,搜索" content_type:"application/json" output_content_type:"application/json"` + Meta `json:"-" deprecated:"false" path:"/user/detail" method:"POST" desc:"测试接口" tag:"用户,搜索" content_type:"application/json" output_content_type:"application/json"` + Name string `json:"name" d:"zhang" desc:"用户姓名" binding:"required"` + Age string `json:"age" d:"18" desc:"年龄" binding:"required,oneof=12 13 18 90"` + } + type UserDelete struct { + Meta `json:"-" deprecated:"false" path:"/user/detail" method:"DELETE" desc:"测试接口" tag:"用户,搜索" content_type:"application/json" output_content_type:"application/json"` Name string `json:"name" d:"zhang" desc:"用户姓名" binding:"required"` Age string `json:"age" d:"18" desc:"年龄" binding:"required,oneof=12 13 18 90"` } @@ -35,11 +41,23 @@ func Test_parser_Openapi3(t *testing.T) { } var o List var f User - g := NewOpenapiDoc(nil, nil) + var fd UserDelete + g := NewOpenapiDoc(nil, []*define.ServerItem{ + &define.ServerItem{ + Url: "http://127.0.0.1/v1", + Description: "v1接口", + Variables: nil, + }, + &define.ServerItem{ + Url: "http://127.0.0.1/v2", + Description: "v2接口", + Variables: nil, + }, + }) g.AddApiFromInAndOut(reflect.TypeOf(f), reflect.TypeOf(o)) + g.AddApiFromInAndOut(reflect.TypeOf(fd), reflect.TypeOf(o)) byteData, _ := json.Marshal(g.docData) fmt.Println(string(byteData)) - fmt.Println(g.parseSliceItem("", reflect.TypeOf(o))) } func TestParseForSwagger(t *testing.T) {