laravel9大家是如何构建API接口的
5.X-7.X、8版本的laravel构建API的话一般是Dingo+JWT(tymon/jwt-auth)构建API和认证。但是随着laravel9(今早安装的,已经9.2了)的更新和以前的DingoAPI、JWT已经不维护了,那么大家是如何构建API的?
如何优雅的构建API的统一出口和提示?之前统一在App/Http下的Controller
里写success
和fail
方法,因为Http下的控制器都继承App/Http下的Controller
;code也是使用HTTP状态码,稍微复杂点的就使用常量或者枚举的方式自定义状态码。
如果进行了代码分层,例如:Interface
→Service
→Reposetory
→Controller
,如何更优雅的处理结果?是在Service
调用Reposetory
后对结果进行throw呢还是return?
我是封装了一个助手函数,自定义返回状态码使用了枚举,错误代码在
Exceptions/Handler.php
中进行判断,然后返回给助手函数关于分层调用,我个人更倾向
throw
,这样不必判断调用的返回值,我使用的是abort()
助手函数,和我以下封装的方法契合度很高。助手函数:
Exceptions/Handler.php
自己瞎搞的,也没人指导过我,有不好的地方你可以优化或者指导我一下。