001package io.jboot.apidoc; 002 003import com.jfinal.kit.Ret; 004 005public class ApiRet<T> { 006 007 private static final String STATE_OK = "ok"; 008 private static final String STATE_FAIL = "fail"; 009 010 //状态,使用 string 是为了兼容 JFinal 的 Ret,目前很多前端是通过 state 来进行判断的 011 private String state; 012 013 //错误码 014 private Integer errorCode; 015 016 //对本次状态码的描述 017 private String message; 018 019 //数据 020 private T data; 021 022 public static ApiRet by(Ret ret) { 023 ApiRet apiRet = new ApiRet(); 024 apiRet.state = ret.isOk() ? STATE_OK : (ret.isFail() ? STATE_FAIL : null); 025 for (Object key : ret.keySet()) { 026 if ("state".equals(key)) { 027 continue; 028 } 029 apiRet.data = ret.get(key); 030 } 031 return apiRet; 032 } 033 034 public static ApiRet ok() { 035 ApiRet apiRet = new ApiRet(); 036 apiRet.state = STATE_OK; 037 return apiRet; 038 } 039 040 public static ApiRet ok(Object data) { 041 ApiRet apiRet = new ApiRet(); 042 apiRet.state = STATE_OK; 043 apiRet.data = data; 044 return apiRet; 045 } 046 047 public static ApiRet fail() { 048 ApiRet apiRet = new ApiRet(); 049 apiRet.state = STATE_FAIL; 050 return apiRet; 051 } 052 053 054 public static ApiRet fail(int errorCode) { 055 ApiRet apiRet = new ApiRet(); 056 apiRet.state = STATE_FAIL; 057 apiRet.errorCode = errorCode; 058 return apiRet; 059 } 060 061 public static ApiRet fail(String message) { 062 ApiRet apiRet = new ApiRet(); 063 apiRet.state = STATE_FAIL; 064 apiRet.message = message; 065 return apiRet; 066 } 067 068 069 public static ApiRet fail(int errorCode, String message) { 070 ApiRet apiRet = new ApiRet(); 071 apiRet.state = STATE_FAIL; 072 apiRet.errorCode = errorCode; 073 apiRet.message = message; 074 return apiRet; 075 } 076 077 078 public ApiRet<T> data(T data) { 079 this.data = data; 080 return this; 081 } 082 083 public ApiRet<T> message(String message) { 084 this.message = message; 085 return this; 086 } 087 088 public ApiRet<T> code(int errorCode) { 089 this.errorCode = errorCode; 090 return this; 091 } 092 093 public ApiRet<T> state(boolean ok) { 094 this.state = ok ? STATE_OK : STATE_FAIL; 095 return this; 096 } 097 098 099 public String getState() { 100 return state; 101 } 102 103 public void setState(String state) { 104 this.state = state; 105 } 106 107 public Integer getErrorCode() { 108 return errorCode; 109 } 110 111 public void setErrorCode(Integer errorCode) { 112 this.errorCode = errorCode; 113 } 114 115 public String getMessage() { 116 return message; 117 } 118 119 public void setMessage(String message) { 120 this.message = message; 121 } 122 123 public T getData() { 124 return data; 125 } 126 127 public void setData(T data) { 128 this.data = data; 129 } 130}