omalizadeh/laravel-api-response 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-02-26