如何在 Lumen 项目中使用 JSON API 资源?
Posted
技术标签:
【中文标题】如何在 Lumen 项目中使用 JSON API 资源?【英文标题】:How can I use JSON API Resource in a Lumen project? 【发布时间】:2019-01-22 22:12:25 【问题描述】:在 Laravel 中,它可以像这里描述的那样简单地完成:https://laravel.com/docs/5.6/eloquent-resources。
有人说,API 资源不适用于 Lumen。但是,仅仅为了这个问题,我想严格地知道,是否有办法在 Lumen 项目中添加 Laravel JSON API 资源(新创建的 Lumen 项目中缺少包 use Illuminate\Http\Resources\Json\JsonResource;
)。
【问题讨论】:
【参考方案1】:API 资源以 lumen 形式提供,文件位于:vendor\illuminate\http\Resources
。
缺少的是生成它们的工匠命令。所以只需手动创建文件,例如:
app\Http\Resources\UserResource.php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
public function toArray($request)
return [
'name' => $this->name,
'email' => $this->email,
];
我不知道谁说,API 资源不适用于 Lumen,但事实并非如此。
【讨论】:
对于 Lumen 5.8,如果您添加软件包 Flipbox/lumen-generator:composer require flipbox/lumen-generator
,您将能够使用 artisan 命令 artisan make:resource myresource
lumen docs里面有资源,谢谢回复【参考方案2】:
升级你的 laravel 到 6.xx 运行
作曲家安装
那么只有你在
下看到资源类vendor/illuminate/http/ 目录
【讨论】:
【参考方案3】:如果您想以 json 格式发送响应,请在您的控制器中使用 返回响应($res,200); 这里 200 是状态码
【讨论】:
Resources 用于在控制器中不使用 View 层。以上是关于如何在 Lumen 项目中使用 JSON API 资源?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Lumen + Guzzle 的 API 调用提供错误数组到字符串的转换
如何在 lumen 5.8.* 中使用 dingo 修复实现 jwt?目标 [Dingo\Api\Contract\Routing\Adapter] 不可实例化