venky/api-responder

Simple, standardized JSON API response library for Laravel

Maintainers

Package info

github.com/byteXLDevops/phplib

pkg:composer/venky/api-responder

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2025-11-06 10:51 UTC

This package is not auto-updated.

Last update: 2026-03-13 10:34:22 UTC


README

A simple Laravel package that provides a standardized JSON response structure for APIs.

๐Ÿ“ฆ Installation

composer require venky/api-responder

๐Ÿš€ Usage

Basic Success Response

use Venky\ApiResponder\ApiResponse;

return ApiResponse::success($user, 'Fetched successfully');

Error Response

return ApiResponse::error('User not found', 404);

// With validation errors
return ApiResponse::error('Validation failed', 422, $validator->errors());

Paginated Response

$users = User::paginate(10);
return ApiResponse::paginated($users, 'Users fetched successfully');

๐Ÿงพ Response Format

Success Response

{
  "status": "success",
  "code": 200,
  "message": "Fetched successfully",
  "data": {
    "id": 1,
    "name": "Venkatesh"
  }
}

Error Response

{
  "status": "error",
  "code": 404,
  "message": "User not found",
  "errors": []
}

Paginated Response

{
  "status": "success",
  "code": 200,
  "message": "Users fetched successfully",
  "data": [...],
  "pagination": {
    "total": 100,
    "count": 10,
    "per_page": 10,
    "current_page": 1,
    "total_pages": 10
  }
}

๐Ÿ“ Example Controller Usage

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Venky\ApiResponder\ApiResponse;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function show($id)
    {
        $user = User::find($id);
        
        if (!$user) {
            return ApiResponse::error('User not found', 404);
        }
        
        return ApiResponse::success($user, 'User fetched successfully');
    }
    
    public function index(Request $request)
    {
        $users = User::paginate(10);
        return ApiResponse::paginated($users, 'Users fetched successfully');
    }
}

๐Ÿงช Testing

Package Tests

composer test

Testing Locally in a Laravel Project

To test the package in a local Laravel project before publishing:

  1. Add local repository (from your Laravel project directory):

    composer config repositories.api-responder path ../laravel-api-responder
  2. Require the package:

    composer require venky/api-responder:dev-main
  3. Use in your controller:

    use Venky\ApiResponder\ApiResponse;
    
    return ApiResponse::success($data, 'Success message');

๐Ÿ“– See TESTING_LOCALLY.md for detailed instructions and examples.

๐Ÿงฐ Future Ideas

  • Add ApiResponse::fromException($e) for automatic exception handling
  • Add custom middleware for auto-formatting all JSON responses
  • Add config for default messages and response structure
  • Support for custom response transformers

๐Ÿ“„ License

MIT License - see LICENSE file for details.