关于 API 资源的疑惑

我对 laravel 文档的 API 资源 章节感到疑惑。
我不明白这个存在的具体应用场景是在哪里,我一直都是用 response->json([]) 来给前端返回具体的 json 格式数据,并且一直觉得方便好用。
不知道大家在做接口是否会常用到这个 API 资源 的功能?是否可以分享一下适用场景?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
xiaopi
最佳答案

这个东西的好处是不光能封装分页格式,而且能统一各个接口的输出。比如做个UserResource统一用户列表用户详情的输出。 不过有的时候列表和详情输出的字段或者关联关系不一样,那也可以在UserResource设置按需加载。 最主要一点,是和控制器代码解耦,只负责转换输出数据。

3年前 评论
讨论数量: 10
xiaopi

这个东西的好处是不光能封装分页格式,而且能统一各个接口的输出。比如做个UserResource统一用户列表用户详情的输出。 不过有的时候列表和详情输出的字段或者关联关系不一样,那也可以在UserResource设置按需加载。 最主要一点,是和控制器代码解耦,只负责转换输出数据。

3年前 评论

当构建 API 时,你往往需要一个转换层来联结你的 Eloquent 模型和实际返回给用户的 JSON 响应。Laravel 的资源类能够让你以更直观简便的方式将模型和模型集合转化成 JSON。

文档简介说的挺明白的,特别是当你需要返回的字段多达几十个的时候,如果全部塞在 Controller里会显得十分臃肿。

3年前 评论

从控制器层抽出组装数据的代码,更加简洁;更方便的控制接口数据输出。

3年前 评论

职责分离,多次调用一次返回

3年前 评论
风吹枫落

返回分页数据的时候很好用

3年前 评论

有些很坑的项目,有时候要返回 驼峰,有时候要返回 下划线

3年前 评论

@风吹枫落 分页的话 我用自带的这个 分页 也很香哦

3年前 评论

你可以不管三七二十一,先用,,,以后可能会知道他是干啥的,,,当然也有可能还是不知道,,

但是你不用,肯定不知道,,,

3年前 评论

你要是自己弄数组要自己foreach循环 资源的话直接 资源类::collection(数据模型结果集) 这样就搞定了

3年前 评论

@myaccountl 这个不也是循环吗 :joy: 我目前觉得和控制器解耦才是这个功能最大的作用 如果不是返回的数据多或者结构比较复杂的情况下我应该还是会直接就 response()->json([]) 了 :grin:

3年前 评论
myaccountl 3年前

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