Laravel怎么使用Dingo API_Laravel构建标准化RESTful API【插件】-Laravel

不推荐在新项目中使用 Dingo API,因其自2021年起已停止维护且不兼容新版Laravel和PHP;Laravel原生API支持完善,替代方案如Sanctum、JsonResource等更现代可靠。

为什么现在不推荐在新项目中用 Dingo API

Dingo API 曾经是 Laravel 社区最流行的 RESTful API 扩展包,但它早在 2021 年就停止维护(dingo/api 最后一次发布是 v3.0.0-alpha5),官方 GitHub 仓库已归档。Laravel 自 5.5 起原生强化了 API 支持(如 Route::middleware('api')、ResponseFactory 的 JSON 默认行为、API 资源类 JsonResource),8.x+ 更内置了 RateLimiter、Sanctum 和 Passport 等完整认证方案。

继续用 Dingo 会遇到这些实际问题:

  • composer require dingo/api 在 Laravel 9/10 下大概率报依赖冲突(它锁死 illuminate/*: ^5.5|^6.0|^7.0|^8.0)
  • 无法兼容 PHP 8.2+ 的严格类型检查(比如 AbstractProvider::register() 返回类型缺失)
  • 文档过时,Stack Overflow 上多数答案对应 Laravel 5.x,API_PREFIX、API_VERSION 这些配置项在新版 Laravel 中早已被更灵活的路由分组替代

用原生 Laravel 实现 Dingo 的核心功能

Dingo 最常被依赖的几个能力:版本化路由、响应格式自动协商、异常统一 JSON 化——其实几行原生代码就能覆盖:

  • 版本化路由:不用 apiVersion(),直接用路由前缀 + 中间件分组:

    Route::prefix('api/v1')->middleware('api')->group(function () {
        Route::get('/users', [UserController::class, 'index']);
    });
  • 响应自动 JSON 化:Laravel 默认 api 中间件已启用 StartSession 和 ThrottleRequests,返回数组或模型会自动转为 JSON(无需 response()->json() 显式调用)
  • 异常 JSON 化:修改 app/Exceptions/Handler.php 的 render() 方法:

    if ($request->is('api/*') && $exception instanceof \Exception) {
        return response()->json(['message' => $exception->getMessage()], 500);
    }

替代 Dingo 的现代方案选型建议

如果确实需要 Dingo 那类“开箱即用的 API 框架感”,优先考虑这些仍在活跃维护的方案:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Laravel怎么使用Dingo API_Laravel构建标准化RESTful API【插件】-Laravel
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4001135+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4001136+
  • 本周更新: 0+
  • 最后更新: 2026-03-16