推荐 Laravel API 项目必须使用的 8 个扩展包

file

如今在现代网络开发中,比较流行的模式是基于 API 开发,可以通过手机或网站来创建服务。 Laravel 是创建基于 API 的项目的最佳框架之一,它为世界各地的大型社区提供了高速开发。 Laravel 内置的项目包括 Composer,允许您添加一些包,使开发更快。 当您决定启动新的基于 API 的项目时,以下几个有用的软件包必须安装。

1. Barryvdh/laravel-debugbar

调试是开发过程中非常重要的一个环节, 通过分析问题,来找到问题,从而解决问题。 Laravel debugbar 是一个能让你在开发过程中更加方便快捷地定位到问题的扩展包。这个扩展包在Laravel 5中封装了 PHP Debug Bar ,它使用了一个 ServiceProvider 去注册并输出 debugbar 的信息 。如果你想试试它,请点击 -> 传送门.

2. Tymondesign/jwt-auth

认证是一个验证你是谁的过程,在登录过程后确认用户身份。为了简单起见,你应该使用 JWT 作为认证过程的标准方法。当你需要在两方之间转移数据时,JWT (JSON Web Token) 是紧凑的,URL安全的代表, 这里 是 JWT 在 laravel 中流行的扩展包.

3. Zizaco/entrust

ACL(访问控制列表)是一个集合操作,它告诉系统每个用户的访问权限。ACL包含用于管理特定用户的访问的角色和权限。Laravel与缺省的ACL命名为Gate。Gate是类和外观的名称,但是在我看来,Gate有点困难,所以让我们到packagist(https://packagist.org/),并找到一些简单的包来管理ACL。有很多包ACL, zizaco/entrust 是最受欢迎的ACL laravel包,你应该去。

4. Spatie/laravel-fractal

对于一个基于 API 的项目来说,最重要的事情就是 API 响应数据的输出。Laravel 采用 Eloquent 来输出 json 或数据格式的数据。如果你仅仅是查询一两张表,那问题并不大,可是如果你使用的表超过了五张以上呢,那确实有点痛苦。 Fractal 就为你提供了一个很棒的解决方案,它为那些复杂的数据输出提供了演示和转换的规则。 Spatie/laravel-fractal 采用了 facades 以便你整合进 Laravel 的项目里,不防试试吧!

5. Webpatser/laravel-uuid

UUID (通用唯一识别码) 是一组 128 bits 的字符,包含字母和数字,每一组是唯一的, 空间和时间保证唯一性,你可以在 这里 了解更多。当用户访问数据时 UUID 可以保护系统。 Webpatser/laravel-uuid 是一个 Laravel 第三方包,根据 RFC 4122 标准生成 UUID, 你可以在 这里 找到它。

6. Intervention/image

Intervention Image 是一个PHP图像处理和操作库,为创建,编辑和合成图像提供了一种更加简单和富有表现力的方式。这个扩展包包含了服务提供者和门面以便和 laravel 轻松的集成

7. Davibennun/laravel-push-notification

Davibennun/laravel-push-notification 是直接发送到用户移动显示屏幕的即时文本消息。它可以提高参与率、提升用户保留率。不仅仅可以帮助驱动你消息主题的活动,还可以有助于增加从应用程序中看到的回报。Push notifications 是最简单发送推送通知到设备的扩展包,也支持APNS(苹果)和GCM(谷歌)的推送通知服务。

8. spatie/laravel-backup

项目中最后一件重要的事情总是备份你的数据. 这个 laravel 扩展包名为 laravel-backup 它会为你的应用程序创建备份. 备份是一个zip文件,它包含你指定的目录中的所有文件以及数据库转储. 备份可以存储在你在项目中任何配置过文件系统上. 你可以一次将应用程序备份到多个文件系统上.

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://medium.com/skyshidigital/8-larav...

译文地址:https://learnku.com/laravel/t/7457/recom...

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 13
  1. API调试应该是Clockwork.那个Barryvdh/laravel-debugbar还没找到正确姿势
  2. 认证为啥不是Passport,官方推荐封装Oauth2.0.
  3. API输出Eloquent-resource更好(laravel5.5)
  4. laravel5.6好像新增了uuid的生成

    是不是太懒了啊= 。-

6年前 评论
yanthink 4年前

第3个的超链接部分,不知道能修复一下吗?

6年前 评论

Barryvdh/laravel-debugbar or itsgoingd/clockwork

6年前 评论

不推荐 Spatie/laravel-fractal,推荐使用 laravel 自带的 resource 代替,fractal 不光设计复杂,灵活性也不高。

6年前 评论

laravel-debugbar 也可以用于postman调试吗?

6年前 评论

@Abel94 是啊,用过感觉太麻烦啦。

6年前 评论

@Stone007 当初还为了适应他的设计改过表结构什么的,然并卵,很多需求根本没法实现。后来无意中看到Resource,设计简单科学,继承了 laravel 一贯的风格,还可以直接 response,复杂结构也不用建那么多的类文件,直接 when 就能解决很多问题。目前还没遇到 resource 处理不了的结构。

6年前 评论

debugbar 做API开发时候怎么输出调试信息啊?

6年前 评论
qbhy

@史沟飞 开发API用clockwork

6年前 评论

只有我的电脑看这类翻译的文章会出现“名片挡住文章内容”的情况吗?

6年前 评论
  1. API调试应该是Clockwork.那个Barryvdh/laravel-debugbar还没找到正确姿势
  2. 认证为啥不是Passport,官方推荐封装Oauth2.0.
  3. API输出Eloquent-resource更好(laravel5.5)
  4. laravel5.6好像新增了uuid的生成

    是不是太懒了啊= 。-

6年前 评论
yanthink 4年前

@aen233 3Q 总结完了 就喜欢这种直接结论的

6年前 评论

entrust 这个动不动就好几个月没动静(issue 没人管,代码无更新),让人用着完全没安全感。老以为项目死了没人维护了,但有时候过上几个月又诈尸一下……

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!