具有不同“必填”字段的POST和GET模型

时间:2019-12-03 20:44:16

标签: go swagger openapi go-swagger

我使用go-swagger。我有这样的模型:

// Pet pet
// swagger:model
type Pet struct {
    // id
    ID int64 `json:"id,omitempty"`
    // name
    // Required: true
    Name *string `json:"name"`
}

,例如在我的 POST 字段Name中,必须必需,但对于 GET 则不需要。因此,如果我不想在不需要的情况下创建类似模型,该如何添加呢?因为现在我唯一的想法是创建type PetGET structtype PetPOST struct,我想这是愚蠢的主意。

1 个答案:

答案 0 :(得分:0)

如果要通过代码生成规范,那么拥有PetGET和PetPOST并不是一个愚蠢的主意。通常,程序模型与API模型不匹配,您仅需重复定义即可生成规范权限。因此,您在这里有几个选择:

您只需标记字段required: false,然后在GET处理程序中进行处理即可。

如果要通过代码生成规范,则可以创建与程序模型分开的仅摇摇欲坠的模型,对于这种情况,请创建两个带有不同注释的模型。