我一直在研究一个用于API开发简化的包,它验证输入数据(根据模式结构,将每个字段名称映射到值valdator / formator等)...我很遗憾看到数据存储不需要我的数据存储payload = map [string] interface {} ...

然后我一直在使用PropertyLoadSaver接口,根据结构的值构造一个属性片 . 所有的指标都是指针(数据存储区不接受excep struct),我使用它是为了不为非提供的值存储零值,但如果指针为零则忽略它...它工作得很好,当我想使用带有指针字段的嵌入式结构时出现问题...我想我只会添加一个带有名称的属性,以及类型为“entity”的值...这个实体有一个nil键和属性(内部)领域)...

我以为这会让我处理绑定到类似结构的json POST

Type Outer struct {
  A *string
  B *int
  i *Inner
}

Type Inner struct {
  C *bool
  D *float64
}

...然后我会充分利用nosql无模式和灵活的功能,拥有可以具有可选属性的实体我或不,部分或完全填充(c和d也可以是可选的)...

这将更轻,仅存储提供的数据并忽略其他属性(您可以手动创建各种形式的实体的数据存储GUI)...如果未在数据存储区中设置,则在加载属性时检索轻量级结构,并将nil设置为指针值从db检索到的实体,因此不向用户显示“坏”零值,但根本不显示以前未提供和存储的内容......

在数据存储区的gui中,手动创建实体,您可以设置“嵌入实体”类型的属性...这正是我想要做的,但是在保存之前向属性切片添加属性(在保存中)类型为“datastore.Entity”的propertyloadsaver兼容结构的方法,其中nil键和属性列表匹配内部结构的属性片...我收到了“具有名称cinfo的属性的无效值”......

任何的想法 ?