我有一个 Open API 生成的模式,我想在我的处理函数中创建响应结构。但是当我想创建匿名结构时,我也需要再次编写字段标签。有没有不需要重复的解决方案?这是最小的例子package main// Response is generated by a tool in a separated filetype Response struct { Result *struct { Id int `json:"id"` } `json:"result,omitempty"`}func main() { var response Response response.Result = &struct { Id int `json:"id"` }{5} // This results in an error // cannot use &struct { Id int } literal (type *struct { Id int }) as type *struct { Id int "json:\"id\"" } in assignment response.Result = &struct {Id int}{5}}这个匿名结构是oapi-codegen的结果,当我在 api 定义的一部分中使用复杂类型components作为响应类型时。我想如果我使用一个CreateBookResponseResult类型,代码生成器不会生成一个匿名结构,但我会推迟这个选项,直到我可以。components: CreateBookResponse: type: object properties: result: type: object properties: id: type: integer
1 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
使用命名类型。
type Response struct {
Result *ResponseResult `json:"result,omitempty"`
}
type ResponseResult struct {
Id int `json:"id"`
}
var response Response
response.Result = &ResponseResult{Id: 5}
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消