建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

产品喵

发帖: 2粉丝: 2

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-3-13 20:02:45 1112 7 楼主 显示全部楼层
[技术交流] CSE 支持接口响应序列化为JSON时过滤掉为null的字段吗?

如题,想做一个动态查询的接口,要求响应是随着请求的字段动态变化的,所以考虑接口响应转为JSON时序列化掉为null的字段CSE 支持接口响应序列化为JSON时过滤掉为null的字段吗?
回复 举报
分享

分享文章到朋友圈

分享文章到微博

产品喵

发帖: 2粉丝: 2

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-3-13 21:44:18 沙发 显示全部楼层
麻烦看下是否已有,或者增加提供自定义json序列化类的扩展能力(希望能到接口级别,有的接口保持原状,有的接口用这种方式)
点赞 回复 举报

wujimin

发帖: 3粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-3-14 08:38:29 板凳 显示全部楼层

"要求响应是随着请求的字段动态变化的"

从需求看,这是一个万能接口?

点赞 回复 举报

产品喵

发帖: 2粉丝: 2

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-3-14 08:58:12 地板 显示全部楼层
wujimin 发表于 2019-3-14 08:38 "要求响应是随着请求的字段动态变化的"从需求看,这是一个万能接口?

没那么夸张,就是比方说我有一张大表,里面有50个字段分别是a、b、c、d.....

别人可以请求传入一个需要查询的字段列表,a、b;a、c;a、b、c、d

而我的响应的json会动态变化,他不查询的字段我不需要返回

例如查询a、b时响应是

{

"a":"xxx",

"b":"xxxx"

}

而不是返回

{

"a":"xxx",

"b":"xxxx",

"c":null,

"d":null

}

所以可以希望自定义响应的JSON序列化实现

点赞 回复 举报

liubao68

发帖: 104粉丝: 9

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-3-14 09:42:33 5# 显示全部楼层

CSE不推荐定制序列化方式,因为这个会破坏契约所定义的一致性语义。 类似这类小的优化,不建议去实现。当然业务也可以通过实现ObjectMapper来自定义。详细参考RestObjectMapperFactory的接口。 进程启动的时候,将自定义的实现set进去即可。 

点赞 回复 举报

产品喵

发帖: 2粉丝: 2

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-3-14 09:52:35 6# 显示全部楼层
liubao68 发表于 2019-3-14 09:42 CSE不推荐定制序列化方式,因为这个会破坏契约所定义的一致性语义。 类似这类小的优化,不建议去实现。当然 ...

这个能做到接口级别吗?我看一设置就全部接口改了

点赞 回复 举报

wujimin

发帖: 3粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-3-14 11:08:43 7# 显示全部楼层

就是比方说我有一张大表,里面有50个字段分别是a、b、c、d.....

别人可以请求传入一个需要查询的字段列表,a、b;a、c;a、b、c、d


这个需求本身还是很奇怪,感觉是想将RESTful当sql的语义?

点赞 回复 举报

产品喵

发帖: 2粉丝: 2

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-3-14 11:15:11 8# 显示全部楼层
wujimin 发表于 2019-3-14 11:08 “就是比方说我有一张大表,里面有50个字段分别是a、b、c、d.....别人可以请求传入一个需要查询的字段列表 ...

有点类似于SQL,但是比那个复杂,我只是简简化了下 - -!

不过这个有点像IAM的一些接口,传入的参数接口不一样,响应就会动态变化

点赞 回复 举报

游客

您需要登录后才可以回帖 登录 | 立即注册