Eloquent:API 资源与分形
Eloquent: API Resources vs Fractal
快速提问,Eloquent:API 资源和分形有什么区别?
对我来说,这看起来是一样的?
两者都用于转换API json响应以标准化响应结构。
但是,API 资源是内置在 Laravel 中的,使用起来非常方便。当 API 资源未在 Laravel 中构建时,分形是首选方法。 Fractal 有一些方法,与 API 资源相比,它没有那么广泛。
但如果你考虑核心功能,两者是相同的,只是语法糖不同。
大多数在分形中的事情,您现在可以在 Laravel 中本地完成。加上 API 资源消除了任何额外安装和设置的需要。 API 资源中的命名法很容易从
开始
它们都是为一份工作而创建的,但它们的解决方案在很多方面都不同。
关系:
在分形中,您可以轻松地将相关模型添加到响应中。此外,您可以控制何时应在响应中显示相关模型。 (默认包含与可用包含)
例如,您的客户可以在需要时使用 ?include=rate
从文章中获取费率模型!考虑到这一点,当您忘记加载它时,分形会急切地加载您的关系。
在 API 资源中,您无法控制关系,您应该首先决定是否建立关系。否则,如果你忘记为它加载数据,加载相关模型将花费你太多的查询(1+n 问题)。
序列化器
在 api 资源的基本用法中,您无法控制数据如何映射到最终响应。
例如,如果您想要 jsonnapi 规范您的回复,您应该自己管理所有作品。但在分形中你首先拥有它。
总结
我建议你在这种情况下使用分形。 (或为 api 使用 dingo 包,但要考虑 dingo 的复杂性!!)
快速提问,Eloquent:API 资源和分形有什么区别?
对我来说,这看起来是一样的?
两者都用于转换API json响应以标准化响应结构。
但是,API 资源是内置在 Laravel 中的,使用起来非常方便。当 API 资源未在 Laravel 中构建时,分形是首选方法。 Fractal 有一些方法,与 API 资源相比,它没有那么广泛。
但如果你考虑核心功能,两者是相同的,只是语法糖不同。
大多数在分形中的事情,您现在可以在 Laravel 中本地完成。加上 API 资源消除了任何额外安装和设置的需要。 API 资源中的命名法很容易从
开始它们都是为一份工作而创建的,但它们的解决方案在很多方面都不同。
关系:
在分形中,您可以轻松地将相关模型添加到响应中。此外,您可以控制何时应在响应中显示相关模型。 (默认包含与可用包含)
例如,您的客户可以在需要时使用 ?include=rate
从文章中获取费率模型!考虑到这一点,当您忘记加载它时,分形会急切地加载您的关系。
在 API 资源中,您无法控制关系,您应该首先决定是否建立关系。否则,如果你忘记为它加载数据,加载相关模型将花费你太多的查询(1+n 问题)。
序列化器
在 api 资源的基本用法中,您无法控制数据如何映射到最终响应。
例如,如果您想要 jsonnapi 规范您的回复,您应该自己管理所有作品。但在分形中你首先拥有它。
总结 我建议你在这种情况下使用分形。 (或为 api 使用 dingo 包,但要考虑 dingo 的复杂性!!)