一直在谷歌搜索和堆栈溢出,但是找不到有关使用哪些工具或yaml标记来配置swagger UI的示例。
还是要在我的摇头休息应用程序上指定哪个URL来显示UI(也许它已经存在并且我没有意识到?)
这是起作用的:
/ docs显示所有端点
和
/swagger.json显示路径的所有JSON
其余端点正常工作
我的Yaml:
swagger: "2.0"
consumes:
- application/io.goswagger.examples.todo-list.v1+json
info:
description: descr
title: My Title
version: 1.0.0
definitions:
message:
type: object
required:
- message
properties:
message:
type: string
minLength: 1
Order:
type: object
properties:
name:
type: string
items:
type: array
items:
type: object
properties:
name:
type: string
quantity:
type: string
description:
type: string
price:
type: string
error:
type: object
required:
- message
properties:
code:
type: integer
format: int64
message:
type: string
schemes:
- http
paths:
/version:
get:
description: version
operationId: version
tags:
- message
responses:
200:
description: standard message response
schema:
$ref: "#/definitions/message"
/health:
get:
description: health of service
operationId: health
responses:
200:
description: healthy service
503:
description: service in bad state
/v1/orders:
get:
description: list
operationId: list
responses:
200:
description: list successful
schema:
type: array
items:
$ref: "#/definitions/Order"
500:
description: list error
schema:
$ref: "#/definitions/message"
default:
description: error
schema:
$ref: "#/definitions/error"
produces:
- application/io.goswagger.examples.todo-list.v1+json
最佳答案
colm.anseo提出的解决方案行得通,但此外,我还必须如下修改configure_myapp_reservices.go方法:
添加:
func uiMiddleware(handler http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Shortcut helpers for swagger-ui
if r.URL.Path == "/swagger-ui" || r.URL.Path == "/api/help" {
http.Redirect(w, r, "/swagger-ui/", http.StatusFound)
return
}
// Serving ./swagger-ui/
if strings.Index(r.URL.Path, "/swagger-ui/") == 0 {
http.StripPrefix("/swagger-ui/", http.FileServer(http.Dir("swagger-ui"))).ServeHTTP(w, r)
return
}
handler.ServeHTTP(w, r)
})
}
// and modified setupGlobalMiddleware as follows:
func setupGlobalMiddleware(handler http.Handler) http.Handler {
return uiMiddleware(handler)
}
注意:添加了Docker命令以将dist复制到我的pod中的/ swagger-ui目录例如
复制/ build / dist / swagger-ui
在本地/ build / dist目录中将index.html修改为指向:
网址:“./ swagger.json”,
还必须获取swagger.json文件并将其粘贴到/ build / dist目录中
(我可以从http://service-route/swagger.json下载swagger.json)