omalizadeh/laravel-api-response
最新稳定版本:v1.3.0
Composer 安装命令:
composer require omalizadeh/laravel-api-response
包简介
Basic and standard api response format for laravel using json resources
README 文档
README
Basic and standard api response format for laravel using json resources.
Installation
composer require omalizadeh/laravel-api-response
Output Format
Resources:
{
"data": {
"id": 1,
"email": "test@test.com"
},
"message": "message",
"errors": {
"password": [
"wrong password."
]
}
}
ResourceCollection:
{
"data": {
"items": [],
"count": 0,
"sum": null
},
"message": null,
"errors": null
}
On validation error for requests (with 422 status code):
{
"data": null,
"message": "first error message in message bag",
"error": {
"password": [
"password field is required."
]
}
}
Usage
Create resources and requests with artisan commands and pass data, message or count to resources like following examples:
public function index(EmailFilter $filters) { $emailsFilterResult = Email::filter($filters); return EmailResource::collection([ 'data' => $emailsFilterResult->data(), 'count' => $emailsFilterResult->count(), ]); }
public function show(Email $email) { return new EmailResource(['data' => $email, 'message'=> 'email info.']); }
You can specify output fields from transformDataItem() method of resource classes.
<?php namespace App\Http\Resources; use Omalizadeh\ApiResponse\Resources\BaseApiResource; class EmailResource extends BasicResource { protected function transformDataItem($item) { return [ 'id' => $item->id, 'email' => $item->email, 'status' => $item->status ]; } }
Also, you can use apiResponse() helper function to directly send response
class PhoneController { public function show(Phone $phone) { return apiResponse()->data($phone)->message('phone info.')->status(200)->get(); } public function index() { $phones = Phone::all(); return apiResponse()->collection($phones, $phones->count())->message('phone info.')->status(200)->get(); } public function update(Request $request, Phone $phone) { $isUpdated = $phone->update($request->all()); if (!$isUpdated) { return apiResponse()->errorMessage('phone is not updated'); } return apiResponse()->data($phone)->message('phone is updated')->get(); } }
In above example message and status are optional, and their default value respectively are null and 200.
Resource
php artisan make:api-resource ResourceClassName
Request
php artisan make:api-request RequestClassName
统计信息
- 总下载量: 1.47k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-02-26