使用 API Resource 来创建自己的 {JSON:API} 格式 API

API Resource

  • 首先在项目app/Http/Resources目录下创建XxxxResource.php文件或执行命令:
php artisan make:resource XxxxResource
  • 编辑XxxxResource文件:
namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\Resource;

class XxxxResource extends Resource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'id'         => $this->id,
        ];
    }
}

返回的数据

  • 正常数据:
return [
            '字段名'         => $this->字段名,
        ];
  • 带有图片,可以这样处理:
return [
            'image'       => $this->imageUrl
        ];
  • 如果有关联关系,可以返回:
return [
            'username'    => $this->user->name,
        ];

username可以另起名最好是按照字段编写,图片和关联关系一定要在model里编写了图像url 和关联关系

Controller中使用

  • XxxxController中使用适用于单条数据
use App\Http\Resources\XxxxResource;

public function show(User $user)
{
    return new XxxxResource($user);
}
  • 多条数据可以使用:
public function index()
    {
        $user = User::get();
        return ArticleResource::collection($user)->additional(
            [
                'status'=>'success',
                'code'=>'200'
            ]
        );
    }

996 total views, 2 views today

Revisions

No comments yet.

发表评论