Maison > Questions et réponses > le corps du texte
我现在的问题是我需要将某项业务,通过封装为get请求,供其他用户来调用,这样就有一个问题,我应该如何设计这个请求的返回结果的格式?因为有多种类型的返回结果,所以将每种返回结果存放到不同的字段,我现在想到的是给一个flag字段,但是需要调用者根据flag来判断展示结果中的哪个字段,不知道有没有什么更加优雅的实现方式。
PHP中文网2017-04-17 18:03:05
Utiliser des génériques pour définir un objet de retour
public class ServiceResult<T> {
private String msg="";//消息说明
private int resultCode=0;//结果消息代码
private T data;//返回的数据字段
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public int getResultCode() {
return resultCode;
}
public void setResultCode(int resultCode) {
this.resultCode = resultCode;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
/**
*
* 一个service对象
*/
public class MyServices {
public List<User> getUserList(){
return new ArrayList<User>();
}
public User getUserByID(Long userId){
return new User();
}
}
/**
* user
*/
class User{
private String name;
private Long id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
/**
* request调用
*/
public class UserRequestObject {
public void doReuest(String requestType){
MyServices someMyServices=new MyServices();
if(requestType.equals("userList")){
ServiceResult<List<User>> result=new ServiceResult<List<User>>();
result.setData(someMyServices.getUserList());
}else if (requestType.equals("user")){
ServiceResult<User> result=new ServiceResult<User>();
result.setData(someMyServices.getUserByID(0L));
}else{
ServiceResult<Void> result=new ServiceResult<Void>();
result.setData(null);
}
//数据转成JSON格式,返回给调用者
}
}
PHPz2017-04-17 18:03:05
De manière générale, vous pouvez définir un format de retour comme suit. resultCode
définit une variété de types de retour. Par exemple, à l'exception de resultCode
, qui est 0
, tout le reste est faux et errorMsg
a des instructions spécifiques. L'objet de retour des affaires normales est décrit par result
. , dans lequel nous pouvons définir diverses logiques normales. Type de retour, par exemple, vous pouvez utiliser resultType
pour représenter différents types. Plusieurs champs enveloppent respectivement différents types de résultats. Si la différence n'est pas grande, vous n'avez pas nécessairement besoin de plusieurs champs, d'un seul champ (le contenu du champ à l'intérieur). peut être null
) .
{
String resultCode;
String errorMsg;
Object result;
}
result描述:
{
String resultType;
ResultForm resultForm;
}
PHP中文网2017-04-17 18:03:05
S'il s'agit de http, vous pouvez utiliser l'en-tête pour transmettre le format de la requête, puis l'interface détermine le format de la réponse correspondante. Le non-HTTP est également similaire. L'appelant fournit le format ou le champ requis, et le serveur peut fournir des résultats différents selon l'identification.