前言
还记得之前做个小应用的时候需要返回
json数据给前台。那时候只需要判断验证是否成功,如果不成功就返回message消息。并没有虑到返回数据,数据则是存入相应的域之中。随着做的业务复杂上升,接触的东西多了之后,那么我们所做的项目就需要前后台分离,或者所使用的接口当中都需要返回相应的状态、消息、数据。如何实际一个高可用的服务器响应类呢?今天就来总结下我是用过的一些服务器响应类吧。
演变
开始的开始
最开始如何写一个服务器响应类呢?请求返回数据给前台ajax调用验证使用。
最直接的想法是一个状态status该请求需要验证的内容是否正确(成功),message根据状态返回相应的提示性描述语句。
这是最开始我做东西时候最直观的想法吧,可能你会说到如果需要返回数据呢?我的回答是没有,数据都是放入requestScope当中,返回modelAndView。现就开看看这个代码吧。
创建一个类作为响应对象,就叫做ExecuteResult
1 | /** |
有点简陋,但是可以避免在代码当中重复写 String result = " " 等内容。就算做是一种进步吧,现在看看如何使用呢。
1 | ("/deleteUser") |
这里是一个删除用户的的方法,只是将用户状态修改,然后返回一个封装了的ExecuteResult告诉前台ajax调用,得到json数据中status为true,Message为删除成功。
进步,能够返回数据
但是上面有问题,如果我们需要返回数据怎么办呢?最简单方法是在ExecuteResult这个封装类当中添加一个属性T data作为一个泛型返回,使用的时候后封装一个VO将需要返回的属性或者对象放入其中,然后将这个VO对象最为ExecuteResult中的属性T data进行返回。
那么上面的ExecuteResult就成了这样的了。
1 | /** |
使用时候直接返回所需要的VO对象(dto)就行了。(dto是展示层和服务层之间传输数据的对象,对于绝大部分应用场景而言dto和vo属性一致,也就是pojo,这是实现层面的思想,对于设计层面而言,它们又担负着不同的角色).
通用,再次封装
绝大部分场景我们能够上面那样,但是status和message容易写成硬编码,如何对status和message进行封装呢,针对于不同的服务器状态返回不同的描述性语言,同时服务器还能够返回不同的数据。
联系
聪聪的独立博客 ,一个喜欢技术,喜欢钻研的95后。如果你看到这篇文章,千里之外,我在等你联系。
