【问题标题】:Uncaught SyntaxError: Invalid regular expression: missing / when using go-swagger未捕获的 SyntaxError:无效的正则表达式:使用 go-swagger 时缺少 /
【发布时间】:2022-01-12 08:43:10
【问题描述】:

我正在尝试实现 go-swagger,但此错误不断闪烁。我正在使用Windows机器。感谢您的帮助。

我的实现:

opts := middleware.RedocOpts{RedocURL: "/swagger.yaml"}
sh := middleware.Redoc(opts, nil)

getRouter.Handle("/docs", sh)
getRouter.Handle("/swagger.yaml", http.FileServer(http.Dir("./")))

我大摇大摆的定义:

// Package classification of Product API.
//
// Documentation for Product API
// Schemes: http
// BasePath: /
// version: 1.0.0
//
// Consumes:
// - application/json
//
// Produces:
// - application/json
// swagger:meta

错误信息:

【问题讨论】:

  • 我不太明白你到底想做什么,你的招摇定义格式不正确
  • 这是go-swagger注解:goswagger.io/use/spec/meta.html会自动生成swagger.yaml文件。我正在尝试结合 swagger 和 Redoc,Redoc 需要 swagger.yaml 所以我需要使用 FileServer 为它创建一个处理程序
  • 图像上的文件似乎被命名为inpage.js(不是swagger.yaml),因此浏览器尝试将其解析为JavaScript,这就是“无效的正则表达式”错误的来源。仔细检查控制输出文件名和路由的配置。
  • 感谢您的建议。我正在检查。

标签: go swagger go-swagger


【解决方案1】:

Redoc的选项必须是

SpecURL

opts := middleware.RedocOpts{SpecURL: "/swagger.yaml"}

而不是RedocURL

opts := middleware.RedocOpts{RedocURL: "/swagger.yaml"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多