restful api接口介绍和数据返回及异常处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了restful api接口介绍和数据返回及异常处理相关的知识,希望对你有一定的参考价值。

什么是接口
api接口开发,其实和平时开发逻辑差不多;但是也有略微差异;
MVC开发模式:平时使用mvc开发网站的思路一般是都 由控制器 去 调用模型,模型返回数据,再由控制器把数据放到视图中,展现给用户;
api开发接口:使用控制器 去调用模型,模型返回数据,在有控制器 输出 json格式字符串 或者 XML 字符串。
为什么要使用接口
1 提高工作效率,分工更加明确
2 彻底解放前端
3 局部性能提升
4 降低维护成本
5 可以使后台能更好的追求高并发、高可用、高性能,使前端能更好的追求页面表现、速度流畅、兼容性、用户体验等。
传统接口
技术图片

restful 风格的api接口
技术图片
在laravel和thinkphp5.0中可以使用资源路由来实现。

api接口返回数据格式
status:业务的状态吗
message:提示信息
data:传送的数据

api接口一定要返回这三种数据格式。可以使用xml,json。一般都是用json较多
我们可以将返回数据的方法写到一个trait中或者写到公共的控制器中
在trait中写上success方法error方法以及封装的result方法中,
技术图片
技术图片
技术图片
我们对于业务的状态码1000以内我们认为是系统的问题,1000以上的状态码设置成业务逻辑错误。我们也可以把错误码写到一个服务类中如下:
技术图片
对于框架中的异常一般都是将异常放入到日志或者展示成网页,这对于接口开发是不行的,所以我要要自行处理自己的异常机制,我们可以修改框架中的顶级异常处理逻辑
我在Exception中建立一个ApiEeception以便于当我们的接口业务逻辑不正确,我们可以throw一个ApiException的异常如下:
技术图片
在顶级异常处理器中做了对ApiException的异常处理和laravel框架运行的异常处理
技术图片

如果是业务的异常就抛出ApiException异常http的状态码依然是200,如果是laravel的异常,http状态码为500,开了debug调试显示laravel框架的异常信息,未开debug调试显示“未知错误”提示。

对于接口中可以抛出ApiException异常也可以调用$this->success()和$this->error()方法对接口进行返回。

以上是关于restful api接口介绍和数据返回及异常处理的主要内容,如果未能解决你的问题,请参考以下文章

API返回状态码

restful API

spring boot 2 全局统一返回RESTful风格数据统一异常处理

JavaSpringMVC:响应封装REST异常处理

统一异常处理的实现

统一异常处理的实现