Go 一个模型用于POST和GET,使用不同的;“必需”;领域

Go 一个模型用于POST和GET,使用不同的;“必需”;领域,go,swagger,openapi,go-swagger,Go,Swagger,Openapi,Go Swagger,我使用大摇大摆。我有这样的模型: // Pet pet // swagger:model type Pet struct { // id ID int64 `json:"id,omitempty"` // name // Required: true Name *string `json:"name"` } 例如,在myPOST字段中,Name必须是必需的,但对于GET则不是。所以,如果我不想创建类似的模型,而不需要进行必要的修改,我应该如何添加它呢?因

我使用
大摇大摆
。我有这样的模型:

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

例如,在myPOST字段中,
Name
必须是必需的,但对于GET则不是。所以,如果我不想创建类似的模型,而不需要进行必要的修改,我应该如何添加它呢?因为现在我唯一的想法是创建
类型PetGET struct
类型PetPOST struct
,我想这是一个愚蠢的想法。

如果您是从代码生成规范,那么拥有PetGET和PetPOST并不是一个愚蠢的想法。通常,程序模型与API模型不匹配,您必须重复定义才能正确生成规范。因此,这里有几个选项:

您可以简单地将字段标记为
required:false
,并在GET处理程序中处理它


如果您是从代码生成规范,则可以创建与程序模型分离的仅限招摇过市的模型,对于这种情况,可以创建两个具有不同注释的模型。

如果现在我只想
默认值
用于PUT,则必须创建另一个模型?如果您希望模型中的精度达到该级别,则可以。或者,使用GET的模型,并定义PUT/POST的内联主体,而不使用单独的模型结构。