2017-10-11 91 views
0

路線:細末招搖着路徑PARAM

// 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, 
}, 

PARAMS /響應模型:

// 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 { 
} 

我不斷收到- path param "{id}" has no parameter definition不管我試試。

端點只接受路徑參數「id」,cookie(它們在swagger模型中不可見)並返回一個空主體和一個HTTP狀態碼。

如何使swagger看到「參數定義」爲「{id}」?

+0

@ Flimzy,是的我試過,「Id」它說「ID不存在路徑」。 JSON的事情是一個絕望的嘗試,我根本不需要JSON。 – exebook

+0

@Flimzy我只是試圖讓它導出,它的工作!我之前嘗試利用它可能還有另一個錯誤。 – exebook

+0

不錯!那麼我已經將我的建議轉化爲答案。 – Flimzy

回答

3

需要導出struct字段。嘗試:

type DeleteRequest struct { 
    // ID of an item 
    // 
    // In: path 
    ID string `json:"id"` 
+0

你仍然需要一個json標籤,我認爲swagger依賴於它 – exebook

+1

@exebook:它遵循與'encoding/json'相同的規則作爲json關鍵字。也就是說,默認情況下,它使用字段結構名稱,並且可以使用json標記覆蓋該默認值。如果您在路徑定義中使用了「{id}」,那麼是的,json標記可能是必需的。如果您在路徑定義中使用了「{ID}」,則不需要使用json標籤。我會傾向於在我自己的代碼中的路徑中使用{ID},但是您可以根據需要使用它。 – Flimzy

+0

這將是非常好的答案 – exebook