go-swagger为路径参数生成路由规范

时间:2016-02-16 12:15:21

标签: json rest go swagger

我正在尝试使用Swagger2.0 specification生成符合go-swagger的json API文档。

我在使用路径参数生成路径参数的JSON doc时遇到问题:

  

PUT / foo / {bar}

目前我的godoc看起来像这样:

// Update bar in foo
// swagger:route PUT /foo/{bar} updateBar
//     Parameters:
//       bar: barParam
//     Responses:
//       500: myErrorResponse
func (h *handler) update(req *http.Request, params martini.Params) (int, string)

结构包装条参数:

// swagger:parameters barParam
type BarParam struct {

    // aaaa
    // in: path
    bar string
}

当我跑步时:

swagger generate spec -o ./swagger.json

生成的JSON目前如下所示:

    "/foo/{bar}": {
        "put": {
            "description": "bar: barParam",
            "operationId": "updateBar",
            "responses": {
                "500": {
                    "$ref": "#/responses/myErrorResponse"
                }
            },
            "summary": "Parameters:"
        }
    }

但我想生成以下JSON(符合Swagger2.0):

    "/v2/foo/{bar}": {
        "put": {
            "operationId": "updateBar",
            "responses": {
                "500": {
                    "$ref": "#/responses/myErrorResponse"
                }
            },
            "parameters": [
                {
                    "in": "path",
                    "name": "bar",
                    "description": "aaaa",
                    "required": true,
                    "type": "string"
                }
            ]
        }
    }

如何修改go-swagger的doc注释来实现呢?是否有任何文档描述了go-swagger的确切注释格式?

2 个答案:

答案 0 :(得分:0)

尝试将您的端点操作ID(' updateBar')添加为参数操作ID。类似的东西:

// swagger:parameters updateBar
type BarParam struct {

    // aaaa
    // in: path
    bar string
}

并删除'参数'来自您的端点swagger doc

答案 1 :(得分:0)

如果要将切换栏切换为小写,则必须设置:

trunc(my_date,'DD')