Go 用路径参数昂首阔步

Go 用路径参数昂首阔步,go,swagger,Go,Swagger,路线: 参数/响应模型: // swagger:route DELETE /v1/path/{id} api DeleteV1 // // Deletes an item. // // Schemes: https // // Responses: // 202: AcceptedResponse // 401: UnauthorizedErrorResponse // 500: InternalServerErrorResponse "/v1

路线:

参数/响应模型:

// swagger:route DELETE /v1/path/{id} api DeleteV1
//
// Deletes an item.
//
//     Schemes: https
//
//     Responses:
//       202: AcceptedResponse
//       401: UnauthorizedErrorResponse
//       500: InternalServerErrorResponse
"/v1/path/{id}": {
    "DELETE":  Handle(DeleteRequest{}),
    "OPTIONS": s.handleOptionsRequest,
},
我不断得到
-路径参数“{id}”没有参数定义
,无论我尝试什么

端点只接受路径参数“id”、cookies(它们在招摇过市模型中不可见),并返回空正文和HTTP状态代码


如何使go-swagger查看“{id}”的“参数定义”?

需要导出结构字段。尝试:

// Description
//
// swagger:parameters DeleteV1
type DeleteRequest struct {
    // id of an item
    //
    // In: path
    id string `json:"id"`

    cookies  []*http.Cookie
}

// Description
//
// swagger:response DeleteResponse
type DeleteResponse struct {
}

需要导出结构字段。尝试:

// Description
//
// swagger:parameters DeleteV1
type DeleteRequest struct {
    // id of an item
    //
    // In: path
    id string `json:"id"`

    cookies  []*http.Cookie
}

// Description
//
// swagger:response DeleteResponse
type DeleteResponse struct {
}

@exebook:它遵循与json键的
encoding/json
相同的规则。也就是说,默认情况下它使用字段struct name,并且可以使用json标记覆盖该默认值。如果您在路径定义中使用了
{id}
,那么是的,json标记可能是必需的。如果在路径定义中使用
{ID}
,则不需要json标记。在我自己的代码中,我倾向于在路径中使用
{ID}
,但是您当然可以随意使用它answer@exebook:它遵循与json键的
编码/json
相同的规则。也就是说,默认情况下它使用字段struct name,并且可以使用json标记覆盖该默认值。如果您在路径定义中使用了
{id}
,那么是的,json标记可能是必需的。如果在路径定义中使用
{ID}
,则不需要json标记。在我自己的代码中,我倾向于在路径中使用
{ID}
,但是您当然可以随意使用它