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

标签 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,我想这是愚蠢的主意。

最佳答案

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

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

如果要从代码生成规范,则可以创建与程序模型分开的仅招摇模型,并在这种情况下,创建两个带有不同注释的模型。

关于go - 具有不同“必填”字段的POST和GET模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59165057/

相关文章:

go - 在 golang 中发布数据后将用户重定向回相同的 URL

mongodb - 由于 DataDog/zstd,Gcloud 应用程序部署因 mongo-driver 失败

Goswagger 没有创建适当的 json 规范文件

java - 无法使用枚举编译 swagger 库

swagger - swagger-ui文档中如何使用本地json文件

json - 如何在 OpenAPI 中指定多文件上传?

go - 如何查看嵌套 Go 依赖项的完整依赖树

express - 如何在 Swagger 中定义包含复杂对象数组的示例请求正文?

c# - 是否可以更改 NSwag 生成的示例值部分的内容?

go - 在Golang中执行之前如何停止AfterFunc