我有一个 Open API 生成的模式,我想在我的处理函数中创建响应结构。但是当我想创建匿名结构时,我也需要再次编写字段标签。有没有不需要重复的解决方案?这是最小的例子
package main
// Response is generated by a tool in a separated file
type 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
哆啦的时光机
相关分类