{"id":22369684,"url":"https://github.com/mesak/laravel-api-response","last_synced_at":"2026-05-08T08:03:42.249Z","repository":{"id":65147010,"uuid":"583875627","full_name":"mesak/laravel-api-response","owner":"mesak","description":"build a Laravel api response package","archived":false,"fork":false,"pushed_at":"2023-09-15T13:22:20.000Z","size":37,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T11:03:26.495Z","etag":null,"topics":["api","api-response","json","json-response","laravel","laravel-package","laravel-response","php","rest-api"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mesak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-31T09:09:48.000Z","updated_at":"2024-09-05T08:12:02.000Z","dependencies_parsed_at":"2024-12-08T17:30:44.923Z","dependency_job_id":null,"html_url":"https://github.com/mesak/laravel-api-response","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"7e46e9912160a0db29a5c45dfa8689be6f4f2bec"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/mesak/laravel-api-response","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesak%2Flaravel-api-response","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesak%2Flaravel-api-response/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesak%2Flaravel-api-response/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesak%2Flaravel-api-response/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mesak","download_url":"https://codeload.github.com/mesak/laravel-api-response/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mesak%2Flaravel-api-response/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32772048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T02:36:36.067Z","status":"ssl_error","status_checked_at":"2026-05-08T02:36:07.210Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-response","json","json-response","laravel","laravel-package","laravel-response","php","rest-api"],"created_at":"2024-12-04T19:27:29.535Z","updated_at":"2026-05-08T08:03:42.218Z","avatar_url":"https://github.com/mesak.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laravel Api Response\n\nLaravel Api Response\n\nControl the api format with a unified callback method\n\n# installation\n\n```bash\ncomposer require mesak/laravel-api-response\n```\n\nOr you could directly reference it into your `composer.json` file as a dependency\n\n```json\n{\n  \"require\": {\n    \"mesak/laravel-api-response\": \"^1.0.0\"\n  }\n}\n```\n\n## Controller\n\nchange your api controller, to extend `Mesak\\LaravelApiResponse\\Http\\Controllers\\Controller`\n\n```php\nnamespace App\\Http\\Controllers;\n\nuse Mesak\\LaravelApiResponse\\Http\\Controllers\\ApiController as BaseController;\n\nclass MainController extends BaseController\n{\n\n}\n```\n\nthen you can return your all response\n\n# Example\n\n## Use Pagination\n\n```php\nclass MainController extends BaseController\n{\n\n    function index(Request $request)\n    {\n      return \\App\\Models\\User::paginate(15);\n    }\n}\n```\n\n## Use Resources\n\n```php\nclass MainController extends BaseController\n{\n\n    function index(Request $request)\n    {\n      $users = \\App\\Models\\User::paginate(15);\n      return \\App\\Http\\Resources\\User::collection($users);\n    }\n}\n```\n\n## Use Exception\n\n```php\nclass MainController extends BaseController\n{\n\n  function index(Request $request)\n  {\n    $users = \\App\\Models\\User::paginate(15);\n    if( $users-\u003eisEmpty() )\n    {\n      throw new \\Exception('No users found');\n    }\n    return \\App\\Http\\Resources\\User::collection($users);\n  }\n}\n```\n\n## Use Extends Exception\n\n```php\n\nclass MainController extends BaseController\n{\n  function index(Request $request)\n  {\n    $users = \\App\\Models\\User::paginate(15);\n    if( $users-\u003eisEmpty() )\n    {\n      throw new \\Mesak\\LaravelApiResponse\\Exceptions\\BaseException('No users found' ); //statusCode 500\n    }\n    return \\App\\Http\\Resources\\User::collection($users);\n  }\n}\n```\n\n\n## Use Custom Exception\n\ncreate your custom exception class `app/Exceptions/BadRequestException.php`\n```php\nnamespace App\\Exceptions;\n\nclass BadRequestException extends \\Mesak\\LaravelApiResponse\\Exceptions\\BaseException\n{\n  protected $errorCode = 400;\n  protected $statusCode = 400;\n  public function __construct($message = 'Bad Request')\n  {\n    parent::__construct($message);\n  }\n}\n```\n\nthen you can use it in your controller\n\n```php\nuse App\\Exceptions\\BadRequestException;\nclass MainController extends BaseController\n{\n  function index(Request $request)\n  {\n    $users = \\App\\Models\\User::paginate(15);\n    if( $users-\u003eisEmpty() )\n    {\n      throw new BadRequestException(); //statusCode 400\n    }\n    return \\App\\Http\\Resources\\User::collection($users);\n  }\n}\n```\n\n\n## without ApiController\n\nif you don't want to extend `Mesak\\LaravelApiResponse\\Http\\Controllers\\ApiController` you can use \n\n`response()-\u003esuccess($data,$statusCode);`\n\n`response()-\u003eerror($data,$statusCode);`\n\n```php\nclass MainController extends \\App\\Http\\Controllers\\Controller\n{\n  function index(Request $request)\n  {\n    $users = \\App\\Models\\User::paginate(15);\n    if( $users-\u003eisEmpty() )\n    {\n      return response()-\u003eerror('no data',400);\n    }\n    $result = \\App\\Http\\Resources\\User::collection($users);\n    return response()-\u003esuccess($result);\n  }\n}\n```\n\n\n## custom config\n\nYou can customise your api schema content with a custom config.php.\n\n```bash\nphp artisan vendor:publish --tag=api-response --force\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmesak%2Flaravel-api-response","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmesak%2Flaravel-api-response","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmesak%2Flaravel-api-response/lists"}