限制JSON模式中的返回字段



我有一个要求允许客户端仅从大型JSON模式请求一部分字段。我已经使用odata及其$ select的概念做到了这一点(我非常喜欢ODATA。除了缺乏收养之外)我知道我可以旋转自己的解决方案,但认为必须有其他可以使用或用作的开源解决方案根据。(我的服务在GO)

有人知道类似的东西吗?普通惯例?

添加一些澄清:

说我有以下图案:

{    "地位": {        "枚举":[            "积极的",            "不活跃"        这是给出的    },,    "上一次更改": {        " type":" string",        "格式":"日期时间"    },,    "用户身份": {        " type":" string",        "最低长度":1    },,    "用户名": {        " type":" string",        "最低长度":1    },,    "名": {        " type":" string",        "最低长度":1    },,    "姓": {        " type":" string",        "最低长度":1    },,    "电子邮件": {        "类型":"字符串"    },,    "地址": {        " $ ref":"#/定义/地址"    }} 

默认情况下,进入我们的用户资源将返回所有这些字段。我想要的是客户的一种方式,说他们只想要以下内容:

{   "名": {        " type":" string",        "最低长度":1    },,    "姓": {        " type":" string",        "最低长度":1    },,    "电子邮件": {        "类型":"字符串"    }} 

使用ODATA,您可以使用$ SELECT Querystring参数指定此内容。理想情况下,我想让客户指定他们想要的模式,我们只需通过每次都可以执行此操作的滤镜将完整的模式传递。但是,我觉得这很可能是我自己编写的。但是,在短期内,如果有一种方法可以让客户以这种方式指定他们想要的字段,那么他们会得到满足,直到我们得到一些更健壮的东西为止。

如果我正确理解您的问题,您想显示特定于客户端字段。如果这样,您可以使用这样的JSON标签。

type FileMD struct {
FileName string `json:"filename"`
FileSize int    `json:"filesize"`
FileMD5  string **`json:"-"`**//this wil ignore the FileMD5 field

}

最新更新