我有一个要求允许客户端仅从大型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
}