Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.6k views
in Technique[技术] by (71.8m points)

如何一个VO实体在多个接口中返回的字段不一样呢?

假设现在有一张user表,包含id、name、pwd、area四个字段,有两个接口:

  • 用户列表
  • 用户详情
  1. 在用户列表中,只展示`id`/`name`/`area`三个字段;
  2. 在详情中,展示全部字段。

环境:springboot项目。

现在我配置了`spring.jackson.default-property-inclusion=NON\_NULL`。

P1:在列表接口中,一旦`area`字段为空,返回的字段就参差不齐,有的返回2个字段,有的返回三个字段,请问如何解决这样的问题?

P2:在详情接口中,也会出现这样的问题,当`area`为`null`时,详情返回3个字段;否则返回4个字段。


Q:请问如何让接口返回固定的字段,例如,列表接口中,固定返回3个字段,即使`area`为空,也要保留该字段。同理,详情接口中,固定返回4个字段,即使有字段为空也要保留该字段。

问题出现的环境背景及自己尝试过哪些方法

我尝试改配置`spring.jackson.default-property-inclusion`,
但是改了好多个都没有达到我的要求。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

image.png
ResponseBodyAdvice这个接口很强大,在你转json之前,会回调beforeBodyWrite这方法,你可以修改接口返回的数据,问题主要是在哪勒,程序不知道你这次调用到底需要哪些字段,这个得调用接口的时候,就传入相关参数过来


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...