[backcolor=rgba(255, 250, 235, 0.96)]
其实严格来说,ServerResponse应该归类到common包中。但是我实在太喜欢这玩意儿了。而且用得也非常频繁,所以忍不住推荐一下。
[backcolor=rgba(255, 250, 235, 0.96)]
借此机会,申明一点,这个系列的类并不是都是我原创的,都是我从各个项目中看到的,感觉非常赞,一点点攒起来的。当然后面也有我自己写的一些工具。重要的是学习,从中学习到知识,就算脱离了这些工具,我们也可以自己写一个。
场景:
[backcolor=rgba(255, 250, 235, 0.96)]
这个场景我真的觉得只要写过接口的,都需要这个。
[backcolor=rgba(255, 250, 235, 0.96)]
其实,在刚刚接触代码的时候,看到大佬接口返回的JSON。JSON里面除了必要的data外,还有各种状态码,状态说明什么的,感觉很厉害。后来渐渐明白了,这个东西是必须的,你不写试试,看与你交互的大佬会不会把你拍成肉饼。
演进:1.直接返回请求的数据:
[backcolor=rgba(255, 250, 235, 0.96)]
后端:呀,前端发来的这个请求,数据库没有对应数据啊。返回一个null吧。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:大哥,你返回给我一个null,是不是接口有问题啊?
[backcolor=rgba(255, 250, 235, 0.96)]
后端:那是你请求的数据在数据库中没有。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:哦。那我知道了。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:呀,前端发来的这个请求,参数不对啊(可能必要参数为空什么的)。我要返回null。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:大哥,你给我返回个null,是数据库没有对应数据嘛?但是这个条件应该有数据啊。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:不是的,你请求的参数有问题啊。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:大哥,那你倒是给我要给回馈啊。否则,我还以为是你接口没数据呢。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:好的吧。让我想想。
2.返回一个对象ResultVo(包含data与code,data为请求的数据,code为状态码):
[backcolor=rgba(255, 250, 235, 0.96)]
后端:嘿,兄弟。我想到了一个好办法,我写了一个ResultVo,它是这样的……%¥&¥……。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:好的。我了解了。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:呀,前端发来的这个请求,没有足够的权限啊。我要返回data=null&code=10。然后在常量表中设置一下。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:我刚刚无意间发现,你的code又增加了10,什么意思?
[backcolor=rgba(255, 250, 235, 0.96)]
后端:啊。忘了告诉你了。code=10表示权限不足。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:那我需要就这个情况,给用户提供专门的说明呀。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:这样效率太低了。而且以后可能会有更复杂多变的情况。我得想想办法。
3.返回一个对象ResultVo2(新增msg属性,充当响应的说明):
[backcolor=rgba(255, 250, 235, 0.96)]
后端:嘿,兄弟。我将原来的ResultVo进行了升级,它是这样的&……%&%&……。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:这挺不错的,以后很多地方,我可以直接显示msg就行了。但是,现在有一个问题,现在的code太多了。我每次进行处理时都要遍历判断,而我常常只需要判断这个响应是否成功了。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:这样啊。我还得再改进一下。
4.ServerResponse:
[backcolor=rgba(255, 250, 235, 0.96)]
后端:请教大佬后,我得到了非常棒的解决方案。并且,我根据自己的业务情况,进行细微的调整,这下就没什么问题了。
[backcolor=rgba(255, 250, 235, 0.96)]
前端&后端:我们感受到了效率的显著提升,以及最为重要的代码规范(契约)。
[backcolor=rgba(255, 250, 235, 0.96)]
其实严格来说,ServerResponse应该归类到common包中。但是我实在太喜欢这玩意儿了。而且用得也非常频繁,所以忍不住推荐一下。
[backcolor=rgba(255, 250, 235, 0.96)]
借此机会,申明一点,这个系列的类并不是都是我原创的,都是我从各个项目中看到的,感觉非常赞,一点点攒起来的。当然后面也有我自己写的一些工具。重要的是学习,从中学习到知识,就算脱离了这些工具,我们也可以自己写一个。
场景:
[backcolor=rgba(255, 250, 235, 0.96)]
这个场景我真的觉得只要写过接口的,都需要这个。
[backcolor=rgba(255, 250, 235, 0.96)]
其实,在刚刚接触代码的时候,看到大佬接口返回的JSON。JSON里面除了必要的data外,还有各种状态码,状态说明什么的,感觉很厉害。后来渐渐明白了,这个东西是必须的,你不写试试,看与你交互的大佬会不会把你拍成肉饼。
演进:1.直接返回请求的数据:
[backcolor=rgba(255, 250, 235, 0.96)]
后端:呀,前端发来的这个请求,数据库没有对应数据啊。返回一个null吧。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:大哥,你返回给我一个null,是不是接口有问题啊?
[backcolor=rgba(255, 250, 235, 0.96)]
后端:那是你请求的数据在数据库中没有。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:哦。那我知道了。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:呀,前端发来的这个请求,参数不对啊(可能必要参数为空什么的)。我要返回null。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:大哥,你给我返回个null,是数据库没有对应数据嘛?但是这个条件应该有数据啊。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:不是的,你请求的参数有问题啊。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:大哥,那你倒是给我要给回馈啊。否则,我还以为是你接口没数据呢。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:好的吧。让我想想。
2.返回一个对象ResultVo(包含data与code,data为请求的数据,code为状态码):
[backcolor=rgba(255, 250, 235, 0.96)]
后端:嘿,兄弟。我想到了一个好办法,我写了一个ResultVo,它是这样的……%¥&¥……。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:好的。我了解了。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:呀,前端发来的这个请求,没有足够的权限啊。我要返回data=null&code=10。然后在常量表中设置一下。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:我刚刚无意间发现,你的code又增加了10,什么意思?
[backcolor=rgba(255, 250, 235, 0.96)]
后端:啊。忘了告诉你了。code=10表示权限不足。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:那我需要就这个情况,给用户提供专门的说明呀。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:这样效率太低了。而且以后可能会有更复杂多变的情况。我得想想办法。
3.返回一个对象ResultVo2(新增msg属性,充当响应的说明):
[backcolor=rgba(255, 250, 235, 0.96)]
后端:嘿,兄弟。我将原来的ResultVo进行了升级,它是这样的&……%&%&……。
[backcolor=rgba(255, 250, 235, 0.96)]
前端:这挺不错的,以后很多地方,我可以直接显示msg就行了。但是,现在有一个问题,现在的code太多了。我每次进行处理时都要遍历判断,而我常常只需要判断这个响应是否成功了。
[backcolor=rgba(255, 250, 235, 0.96)]
后端:这样啊。我还得再改进一下。
4.ServerResponse:
[backcolor=rgba(255, 250, 235, 0.96)]
后端:请教大佬后,我得到了非常棒的解决方案。并且,我根据自己的业务情况,进行细微的调整,这下就没什么问题了。
[backcolor=rgba(255, 250, 235, 0.96)]
前端&后端:我们感受到了效率的显著提升,以及最为重要的代码规范(契约)。
更多技术资讯可关注:gzitcast