{"id":20619216,"url":"https://github.com/shalvah/laravel-jsend","last_synced_at":"2025-04-10T01:09:50.461Z","repository":{"id":22029753,"uuid":"94982641","full_name":"shalvah/laravel-jsend","owner":"shalvah","description":"Simple helpers to generate JSend-compliant JSON responses","archived":false,"fork":false,"pushed_at":"2023-04-07T10:59:14.000Z","size":26,"stargazers_count":62,"open_issues_count":0,"forks_count":16,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-10T01:09:46.030Z","etag":null,"topics":["api","jsend","json","laravel"],"latest_commit_sha":null,"homepage":"http://shalvah.me/laravel-jsend/","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/shalvah.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":"2017-06-21T08:42:32.000Z","updated_at":"2023-10-19T12:44:39.000Z","dependencies_parsed_at":"2024-06-18T18:37:10.532Z","dependency_job_id":"2af58d32-cdfc-4163-939f-b1860ce545cc","html_url":"https://github.com/shalvah/laravel-jsend","commit_stats":{"total_commits":31,"total_committers":8,"mean_commits":3.875,"dds":0.4516129032258065,"last_synced_commit":"11e6d0968a86a3a3744e7e58b53f8a490f067397"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shalvah%2Flaravel-jsend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shalvah%2Flaravel-jsend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shalvah%2Flaravel-jsend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shalvah%2Flaravel-jsend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shalvah","download_url":"https://codeload.github.com/shalvah/laravel-jsend/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137886,"owners_count":21053775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","jsend","json","laravel"],"created_at":"2024-11-16T12:11:02.998Z","updated_at":"2025-04-10T01:09:50.439Z","avatar_url":"https://github.com/shalvah.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# laravel-jsend\n\n[![Latest Stable Version](https://poser.pugx.org/shalvah/laravel-jsend/v/stable)](https://packagist.org/packages/shalvah/laravel-jsend)\n[![Total Downloads](https://poser.pugx.org/shalvah/laravel-jsend/downloads)](https://packagist.org/packages/shalvah/laravel-jsend)\n\nSimple helpers to generate [JSend-compliant](https://labs.omniti.com/labs/jsend) responses for your Laravel app\n\nThe [JSend specification](https://labs.omniti.com/labs/jsend) lays down some rules for how JSON responses from web servers should be formatted. JSend is especially suited for REST-style applications and APIs.\n\n## Installation\nLaravel 7 and above:\n```bash\ncomposer require shalvah/laravel-jsend\n```\n\nLaravel 5.1 - 6.*:\n```bash\ncomposer require shalvah/laravel-jsend:^1.0\n```\n\n## Usage\nIn your controller:\n\n```php\npublic function create(Request $request)\n{\n  $userData = $request-\u003einput('data');\n  if (empty($userData['email']))\n      return jsend_fail(['email' =\u003e 'Email is required']);\n  \n  try {\n      $user = User::create($userData):\n      return jsend_success($user);\n  } catch (Exception $e) {\n      return jsend_error('Unable to create user: '.$e-\u003egetMessage());\n  }\n}\n```\n\nYou can also add the `JsendExceptionFormatter` trait in `App\\Exceptions\\Handler` to format JSON responses for unhandled exceptions and Laravel validation errors as JSend:\n```php\nclass Handler extends ExceptionHandler\n{\n    use Shalvah\\LaravelJsend\\JsendExceptionFormatter;\n    \n    // ...\n}\n```\n\n## Available helpers\n### `jsend_success`\nThe `jsend_success` function creates a JSend **success** response instance.\n```php\nreturn jsend_success([\n  \"id\" =\u003e 2,\n  \"title\" =\u003e \"New life\",\n  \"body\" =\u003e \"Trust me, this is great!\"\n]);\n```\n\nGenerates a response:\n```json\n{\n  \"status\": \"success\",\n  \"data\": {\n    \"id\": 2,\n    \"title\": \"New life\",\n    \"body\": \"Trust me, this is great!\"\n  }\n}\n```\nYou may pass an Eloquent model instead of an array as the \"data\" object:\n\n```php\n$post = Post::find($id);\nreturn jsend_success($post);\n```\n\n### `jsend_fail`\nThe `jsend_fail` function creates a JSend **fail** response instance.\n```php\nreturn jsend_fail([\n    \"title\" =\u003e \"title is required\",\n    \"body\" =\u003e \"body must be 50 - 10000 words\"\n]);\n```\n\nGenerates a response:\n```json\n{\n  \"status\": \"fail\",\n  \"data\": {\n    \"title\": \"title is required\",\n    \"body\": \"body must be 50 - 10000 words\"\n  }\n}\n```\n\n### `jsend_error`\nThe `jsend_error` function creates a JSend **error** response instance.\n```php\nreturn jsend_error(\"Unable to connect to database\");\n```\n\nGenerates a response:\n```json\n{\n  \"status\": \"error\",\n  \"message\":\"Unable to connect to database\"\n}\n```\nYou may also pass optional `code` and `data` objects.\n```php\nreturn jsend_error(\"Unable to connect to database\", 'E0001', ['type' =\u003e 'database error']);\n```\n\nGenerates a response:\n```json\n{\n  \"status\": \"error\",\n  \"message\":\"Unable to connect to database\",\n  \"code\": \"E001\",\n  \"data\": {\n    \"type\": \"database error\"\n  }\n}\n```\n\n\u003e Note: for each helper, the HTTP status codes are set automatically (to 200, 400, and 500 for `success`, `fail`, and `error` respectively), and the header `Content-type: application/json` is set. If you wish, you may specify a HTTP status code and additional headers as the last two parameters.\n```php\nreturn jsend_success($post, 201, [\"X-My-Header\" =\u003e \"header value\"]);\nreturn jsend_fail([\"location_id\" =\u003e \"Location not found\"], 404);\nreturn jsend_error(\"Unable to connect to database\", 'E0001', [], 503, [\"X-My-Header\" =\u003e \"header value\"]);\n```\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshalvah%2Flaravel-jsend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshalvah%2Flaravel-jsend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshalvah%2Flaravel-jsend/lists"}