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”:"******************"}