龙空技术网

Web API返回数据的规范

Chatgpt公众号 609

前言:

而今你们对“接口返回的数据类型”大概比较重视,兄弟们都需要了解一些“接口返回的数据类型”的相关知识。那么小编同时在网络上搜集了一些对于“接口返回的数据类型””的相关资讯,希望兄弟们能喜欢,咱们快快来了解一下吧!

目前主流的应用开发基本都是客户端app(ios,android,小程序,H5,PC web)+web api(web server)这种模式,所以,后台开发的工作基本就是写接口。而接口,是后台写给前端调用的,所以接口返回数据的合理规范对于接口使用者-前端,非常重要。下面谈谈我的规范。

1 按对数据的操作分为纯读取和写入两类。先说写的,由于有写的操作,很多时候客户端需要从返回结果中获取写操作的情况,是否操作成功,不成功时往往需要把原因显示给用户看。所以,我一般在后端定义含写操作的返回结果类是这样的

public  class Result{  /// 0表示成功  1表示失败       public  int Code {get;set;}	///  当code=1 时 包含有失败的描述    public  string Message {get;set;}  // 返回的数据  object 表示可以任意类型  加?表示可为空    public  object? Data {get;set;}   }

写后台代码时,为了方便,对成功和失败两种情况做个封装类来调用。

 public class Resulting    {        public static Result OK(object? t =null)        {            return new Result() {                Data = t        };        }        public static Result Fail(string message,int code=1)        {            return new Result()            {                Code = code,                Message = message            };        }    }

调用时简洁多了,比如返回成功结果

return  Resulting.OK(returnData);

返回失败结果

return  Resulting.Fail("失败原因是...")

2 对于纯粹读取的,其中读取结果又分单个对象和对象集合两种情况,大多数情况下都是集合居多。对于这类接口我认为返回结果最好直接就是客户端要的数据,不需要像前面那样套个Result类在身上。因为查询数据不会对系统产生影响,有就有,没有就没有,不需要解释太多。如果结果是空怎么办?单个对象,可以返回null,对象集合则返回空集合,即长度为0的集合,这样对客户端友好一些。

不知道你有没有更好的见解,或者你的公司对于接口返回有不一样的规范要求,欢迎留言交流。

标签: #接口返回的数据类型