首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >go-restful-openapi $refs必须引用文档中的有效位置

go-restful-openapi $refs必须引用文档中的有效位置
EN

Stack Overflow用户
提问于 2021-06-21 07:53:26
回答 1查看 1.5K关注 0票数 0

我使用go-restfulgo-restful-openapi相结合来自动生成我的swagger文档。但是,在使用swagger编辑器测试该工具时,我得到以下错误:

$refs必须引用文档中的有效位置。

结构

代码语言:javascript
复制
type Users struct {
  # uuid imported from github.com/google/uuid@v1.2.0
  RelatedUsers []uuid.UUID `json:"relatedIds" validate:"required"`
}

生成的虚张声势片段

代码语言:javascript
复制
  "Users": {
   "required": [
    "relatedIds"
   ],
   "properties": {
    "relatedIds": {
     "type": "array",
      "$ref": "#/definitions/uuid.UUID" #this line returns an error 
     }
    }
   }
  }

下面是swagger配置:

代码语言:javascript
复制
    swaggerConfig := restfulspec.Config{
        WebServices: restfulContainer.RegisteredWebServices(),
        APIPath:     "/swagger.json",
        PostBuildSwaggerObjectHandler: func(swo *spec.Swagger) {
            swo.Info = &spec.Info{
                InfoProps: spec.InfoProps{
                    Title:       "User Service",
                    Description: "An example service for stackoverflow",
                    Version:     "1.0.0",
                },
            }
        },
    }

注意:如果我像下面这样替换了swagger编辑器中的行,那么错误就消失了,但是,我想不出如何自动配置swagger。

代码语言:javascript
复制
  "Users": {
   "required": [
    "relatedIds"
   ],
   "properties": {
    "relatedUsers": {
        type: array
        items:
         type: "string"
         format: "uuid"
     }
    }
   }
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-29 08:36:01

万一有人遇到这个问题:go-restful-openapi无法解决导入的自定义类型。若要解决此问题,请将类型添加到定义中

代码语言:javascript
复制
swo.Definitions["uuid.UUID"] = spec.Schema{
    SchemaProps: spec.SchemaProps{
                Type:   []string{"string"},
                Format: "uuid",
    },
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68064268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档