强烈建议 restful api 接口返回如下格式

restful api 的返回格式,必须满足如下格式:

只有返回这样的格式,拿到 数据解析时才能快速解析接口返回的数据

【强烈】建议的返回格式

class ApiResponseResult<T>
{
    public bool IsSuccess { get; set; }     //接口是否有错误
    public string Error { get; set; }	    //错误消息
    public T RawData { get; set; }		    //泛型的,本来想返回的数据
}
返回这种格式,取数据相当方便
public class TestApi
{
    void HowToUse()
    {
        ApiResponseResult<Student> result = null;
        if (result.IsSuccess)
        {
            Student student = result.RawData;   //获取数据
        }
        else
        {
            string error = result.Error;    //显示错误消息
        }
    }
}

定义的测试对象

class Student
{
    public string Name { get; set; }
    public int Age { get; set; }
}

当接收到接口返回的数据时,如何知道接口返回 成功了没有?

方式1:检测返回的数据中是否有【name】这个关键词

存在的问题:错误消息中也可能有。你调用别人接口 时,别人没有列出所有的错误消息,你怎么知道他的错误消息一定没有【name】这个关键词呢?

方式2:检测返回数据中是否有【status:“FAILURE”】这个关键词

存在的问题:对方有10个接口,其中有些接口错误时有【status】这个关键词,有的没有;

错误的返回格式:

错误时返回格式1:{“message”:"******************"}
错误时返回格式2:{status:“FAILURE”,“message”:"******************"}
正确时返回:{name:""}

更可恶的是: 同一个字段在不同接口中叫不同的名字,比如:

status:“FAILURE”,“message”:"******************"}
state:“FAILURE”,“message”:"******************"}
status:“FAILURE”,“msg”:"******************"}
status:“FAILURE”,“error”:"******************"}


版权声明:本文为xinyqsy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。