java 接口 返回_Java 接口返回类

本文说明在业务系统中,如何设计返回值接口类,包括普通数据和分页数据

基类

提供基础字段,包括:success,message,code

代码

package com.tantou.maven.result;

import java.io.Serializable;

/**

* Created by jiangweiyang on 16/11/10.

*/

public class ResultSupport implements Serializable {

private static final long serialVersionUID = -2235152751651905167L;

public boolean isSuccess() {

return code == ResultCode.SuccessCode;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

public int getCode() {

return code;

}

public void setCode(int code) {

this.code = code;

}

private String message;

private int code;

}

普通数据

继承自ResultSupport,多了data字段,可以存储数组和普通对象

数据格式

数组

{

message: null,

code: 0,

data: [],

success: true

}

对象

{

message: null,

code: 0,

data: {},

success: true

}

代码

package com.tantou.maven.result;

/**

* Created by jiangweiyang on 16/11/10.

*/

public class APIResult extends ResultSupport {

protected T data;

public T getData() {

return data;

}

public void setData(T data) {

this.data = data;

}

/**

* 接口调用失败,有错误字符串码和描述,有返回对象

* @param code

* @param message

* @param data

* @param

* @return

*/

public static APIResult newFailResult(int code, String message, U data) {

APIResult apiResult = new APIResult();

apiResult.setCode(code);

apiResult.setMessage(message);

apiResult.setData(data);

return apiResult;

}

/**

* 接口调用失败,有错误字符串码和描述,没有返回对象

* @param code

* @param message

* @param

* @return

*/

public static APIResult newFailResult(int code, String message) {

APIResult apiResult = new APIResult();

apiResult.setCode(code);

apiResult.setMessage(message);

return apiResult;

}

public static APIResult newSuccessResult(U data){

APIResult apiResult = new APIResult();

apiResult.setData(data);

return apiResult;

}

}

分页数据

继承自ResultSupport,多了meta和data属性,meta用于存放分页相关信息,也可以扩展成其他元数据信息,data用与存放数组信息

数据格式

{

message: null,

code: 0,

data: [],

meta: {

pageNo: 1,

pageSize: 2,

totalCount: 20

},

success: true

}

代码

package com.tantou.maven.result;

import java.util.Collection;

/**

* Created by jiangweiyang on 16/11/10.

*/

public class PageResult extends ResultSupport {

protected T data;

public T getData() {

return data;

}

public void setData(T data) {

this.data = data;

}

private Meta meta;

public Meta getMeta() {

return meta;

}

public void setMeta(Meta meta) {

this.meta = meta;

}

public int getPageNo() {

return meta.getPageNo();

}

public void setPageNo(int pageNo) {

this.meta.setPageNo(pageNo);

}

public int getPageSize() {

return this.meta.getPageSize();

}

public void setPageSize(int pageSize) {

this.meta.setPageSize(pageSize);

}

public int getTotalCount() {

return this.meta.getTotalCount();

}

public void setTotalCount(int totalCount) {

this.meta.setTotalCount(totalCount);

}

public PageResult() {

this.meta = new Meta();

}

public PageResult(int pageNo, int pageSize, int totalCount, T data) {

this();

this.setPageNo(pageNo);

this.setPageSize(pageSize);

this.setTotalCount(totalCount);

this.setData(data);

}

/**

* 接口调用失败,有错误字符串码和描述,有返回对象

*

* @param code

* @param message

* @param data

* @param

* @return

*/

public static PageResult newFailResult(int code, String message, U data) {

PageResult pageResult = new PageResult();

pageResult.setCode(code);

pageResult.setMessage(message);

pageResult.setData(data);

return pageResult;

}

/**

* 接口调用失败,有错误字符串码和描述,没有返回对象

*

* @param code

* @param message

* @param

* @return

*/

public static PageResult newFailResult(int code, String message) {

PageResult pageResult = new PageResult();

pageResult.setCode(code);

pageResult.setMessage(message);

pageResult.setMeta(null);

return pageResult;

}

public static PageResult newSuccessResult(int pageNo, int pageSize, int totalCount, U data) {

return new PageResult(pageNo, pageSize, totalCount, data);

}

private class Meta {

protected int pageNo = 1;

protected int pageSize;

protected int totalCount;

public int getPageNo() {

return pageNo;

}

public void setPageNo(int pageNo) {

if (pageNo <= 0) {

pageNo = 1;

}

this.pageNo = pageNo;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

if (pageSize < 0) {

pageSize = 0;

}

this.pageSize = pageSize;

}

public int getTotalCount() {

return totalCount;

}

public void setTotalCount(int totalCount) {

this.totalCount = totalCount;

}

}

}

状态码

系统

public abstract class ResultCode {

public static final int SuccessCode = 0;

}

业务

public static final Long DefaultAddressNotDeleteErrorCode = 10001L;//默认地址不能删除

public static final Long NotFindAddressErrorCode = 10002L;//找不到此收货地址

public static final Long NotFindUserErrorCode = 10003L;//找不到此用户

public static final Long NotMatchUserAddressErrorCode = 10004L;//用户与收货地址不匹配

应用

@RequestMapping(method = RequestMethod.GET, value = "/success")

public PageResult> findPageResultSuccess(HttpServletRequest req) {

List users = new ArrayList();

for (int i = 0; i < 20; i++) {

User tom = new User();

tom.setUsername("tom" + i);

users.add(tom);

}

PageResult> result = PageResult.newSuccessResult(1, 2, users.size(), users);

return result;

}

@RequestMapping(method = RequestMethod.GET, value = "/fail")

public PageResult> findPageResultFail(HttpServletRequest req) {

List users = new ArrayList();

PageResult> result = PageResult.newFailResult(1, "分页查询失败");

return result;

}

@RequestMapping(method = RequestMethod.GET, value = "/success")

public APIResult findAPIResultSuccess(HttpServletRequest req) {

User user = new User();

APIResult result = APIResult.newSuccessResult(user);

return result;

}

@RequestMapping(method = RequestMethod.GET, value = "/fail")

public APIResult findAPIResultFail(HttpServletRequest req) {

APIResult result = APIResult.newFailResult(1, "没有找到用户");

return result;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值