用 Laravel 开发纯 API 服务,怎么安全的去掉视图层呢?
Lumen
太极端,去掉了很多 Laravel
好用的东西,开发起来不太舒服,并且中文文档和很多 composer
包的支持度不如 Laravel
高。
于是想用 Laravel
开发,但是去掉 API 服务用不到的 视图层 等等。
还有一些 cookie
之类的纯 API用不上的 服务提供者。
在社区找到一位大佬有去掉视图层的简单教程,但是按照这套操作下来,在请求不存在的路由时,日志里会报 视图 不存在的错误。说明有其他服务提供者依赖于视图,但无奈技术有限,没有找到具体是哪个在依赖。
我想社区应该也有很多人有同样的需求吧,精简但不至于太精简的 Laravel
,专门用于纯 API 开发。
哪位大佬能指导一下吗?
或者出个付费教程也可以。
提前感谢~!
为什么要去掉 你做邮件通知的时候 模板是你服务器写的 到时候不是也要用视图层吗
不去掉就行,性能不够时再加机器
视图你直接不用就完了。视图服务在容器中注册,应该是懒加载的,你不调用它不初始化的。没有什么影响。
定义 fallback 路由 路由《Laravel 9 中文文档》
业务不要做预置优化。
额。。你不用它不就完了吗?反正你请求的都是 api 中的路由,也不需要你做什么啊?
这个原因应该是你的路由默认跳转地址不对,在 api 路由文件中添加一个 fallback 路由,所有请求不到的路由都会走 fallback 兜底。
如果只是做 api ,需要添加在 header 中添加 accept: application/json 参数,这样所有的数据格式都是以 json 返回,就不会出现请求未授权时跳转到 logoin 视图的情况。 这个一般都是在全局中间件中处理。
如果还搞不定的话私信我帮你看下。
视图你不用就行了, 可以去掉一些必须要的中间件,修改
App\Http\Kernel.php
建议直接用golang,非常的快,这些东西通通没有,几句话,就是一个api
可以直接使用 api 的相关路由和中间件就可以
统一处理一下异常和返回值
想优化地址的话就在 nginx 上做一下代理
在App\Exceptions里的 Handler类的render 异常捕获里面加response响应
报错提示视图不存在,因为你的请求没有被标识为 ajax,或者需要 json 数据,改一下错误处理就行了
之前记得有人问过. 我还写了两篇博客, 可以参考一下这个
www.shiguopeng.cn/posts/2021052616...