2017-10-11 1 views
0

Route param:go-fanfaronnades avec le chemin

// 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/modèle de réponse:

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

je continue à avoir - path param "{id}" has no parameter definition tout ce que j'essaie.

Le point de terminaison ne prend que le chemin param "id", les cookies (ils ne sont pas visibles dans un modèle swagger) et renvoie un corps vide et un code d'état HTTP.

Comment faire go-swagger voir la "définition de paramètre" pour le "{id}"?

+0

@ Flimzy, oui j'ai essayé, "Id" il dit "Id n'est pas présent dans le chemin". La chose JSON est une tentative désespérée, je n'ai pas besoin de JSON ici du tout. – exebook

+0

@Flimzy Je viens d'essayer à nouveau de le faire exporter et ça a marché! Probablement il y avait une autre erreur dans ma précédente tentative de capitaliser. – exebook

+0

Nice! J'ai alors transformé ma suggestion en une réponse. – Flimzy

Répondre

3

Le champ struct doit être exporté. Essayez:

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

Vous avez toujours besoin d'un tag json, je pense que Swagger s'en remet – exebook

+1

@exebook: Il suit les mêmes règles que 'encoding/json' pour la clé json. C'est-à-dire, il utilise le nom de la structure du champ par défaut, et cette valeur par défaut peut être remplacée par la balise json. Si vous utilisez '{id}' dans la définition du chemin, alors oui, la balise json est probablement nécessaire. Si vous utilisez '{ID}' dans la définition du chemin, aucune balise json ne sera nécessaire. Je tendrais vers '{ID}' dans le chemin de mon propre code, mais vous pouvez bien sûr l'utiliser comme vous le voulez. – Flimzy

+0

ce serait génial d'avoir dans la réponse – exebook