{"id":36979419,"url":"https://github.com/ibrahimhalilucan/response-builder","last_synced_at":"2026-01-13T22:49:03.816Z","repository":{"id":64308809,"uuid":"573430476","full_name":"ibrahimhalilucan/response-builder","owner":"ibrahimhalilucan","description":"Laravel API Response Builder","archived":false,"fork":false,"pushed_at":"2025-08-24T11:49:24.000Z","size":927,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-25T18:44:11.189Z","etag":null,"topics":["api","json-api","laravel","response","rest-api","restful-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/ibrahimhalilucan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2022-12-02T12:55:28.000Z","updated_at":"2025-08-24T11:46:25.000Z","dependencies_parsed_at":"2025-08-24T13:20:25.139Z","dependency_job_id":null,"html_url":"https://github.com/ibrahimhalilucan/response-builder","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ibrahimhalilucan/response-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimhalilucan%2Fresponse-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimhalilucan%2Fresponse-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimhalilucan%2Fresponse-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimhalilucan%2Fresponse-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibrahimhalilucan","download_url":"https://codeload.github.com/ibrahimhalilucan/response-builder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimhalilucan%2Fresponse-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28403742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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","json-api","laravel","response","rest-api","restful-api"],"created_at":"2026-01-13T22:49:03.104Z","updated_at":"2026-01-13T22:49:03.810Z","avatar_url":"https://github.com/ibrahimhalilucan.png","language":"PHP","readme":"![REST API Response Builder for Laravel](assets/img/package.png)\n\n## Response Builder for Laravel API\n\nResponseBuilder is Laravel's helper designed to build nice, normalized and easy to consume REST API JSON responses.\n\n## Requirement\n\n\u003e Laravel \u003e= 5.6\n\u003e\n\u003e  Php \u003e= 7.1\n\n## Installation\n\nYou can install the package via composer:\n\n```bash\n$ composer require ibrahimhalilucan/response-builder\n```\n\n### Exposed Methods\n\n#### success\n- Parameter `null|mixed $data`\n- Return `return \\IbrahimHalilUcan\\ResponseBuilder\\ResponseBuilder`\n#### error\n- Parameter `null|mixed $data`\n- Return `return \\IbrahimHalilUcan\\ResponseBuilder\\ResponseBuilder`\n#### message\n- Parameter `string $message`\n- Return `@return \\IbrahimHalilUcan\\ResponseBuilder\\ResponseBuilder`\n#### httpHeaders\n- Parameter `array $httpHeaders`\n- Return `@return \\IbrahimHalilUcan\\ResponseBuilder\\ResponseBuilder`\n#### httpStatusCode\n- Parameter `int $httpStatusCode`\n- Return `@return \\IbrahimHalilUcan\\ResponseBuilder\\ResponseBuilder`\n#### append\n- Parameter `array $data`\n- Return `@return \\IbrahimHalilUcan\\ResponseBuilder\\ResponseBuilder`\n#### build\n- Return `@return \\Illuminate\\Http\\JsonResponse`\n\n## Usage\n\n### Example 1\n\n```php\nuse IbrahimHalilUcan\\ResponseBuilder\\Facades\\ResponseBuilder;\n\n$items = [1, 2, 3, 4];\nreturn ResponseBuilder::success($items)-\u003ebuild();\n```\n\nSee response below:\n\n```text\n{\n    \"meta\": {\n        \"status\": true,\n        \"code\": 200,\n        \"message\": \"OK\"\n    },\n    \"data\": [1,2,3,4,5]\n}\n```\n\n### Example 2\n\n```php\nuse IbrahimHalilUcan\\ResponseBuilder\\Facades\\ResponseBuilder;\nuse Symfony\\Component\\HttpFoundation\\Response;\n\n$items = [1, 2, 3, 4];\nreturn ResponseBuilder::success($items)\n    -\u003emessage('Result Message')\n    -\u003eappend(['custom-key' =\u003e 'value'])\n    -\u003ehttpStatusCode(Response::HTTP_OK)\n    -\u003ebuild();\n```\n\nSee response below:\n\n```text\n{\n    \"meta\": {\n        \"status\": true,\n        \"code\": 200,\n        \"message\": \"Result Message\"\n    },\n    \"data\": [1,2,3,4,5],\n    \"custom-key\": \"value\"\n}\n```\n\n### Example 3\n\n```php\nuse IbrahimHalilUcan\\ResponseBuilder\\Facades\\ResponseBuilder;\n\n$items = Blog::where('status', 1)-\u003eget();\nreturn ResponseBuilder::success($items, BlogResource::class)\n    -\u003emessage('Active Blog Lists')\n    -\u003eappend(['custom-key' =\u003e 'value'])\n    -\u003ebuild();\n```\n\nSee response below:\n\n```text\n{\n    \"meta\": {\n        \"status\": true,\n        \"code\": 200,\n        \"message\": \"Active Blog Lists\"\n    },\n    \"data\": [\n        {\n            \"id\": 1,\n            \"title\": \"Lorem Ipsum 1\",\n            \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n            \"published_at\": \"2022-12-03 18:09:21\",\n            \"created_at\": \"2022-12-03 18:09:21\" \n        },\n        {\n            \"id\": 2,\n            \"title\": \"Lorem Ipsum 2\",\n            \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n            \"published_at\": \"2022-12-03 18:19:35\",\n            \"created_at\": \"2022-12-03 18:19:35\" \n        },\n    ],\n    \"custom-key\": \"value\"\n}\n```\n\n### Example 4\n```php\nuse IbrahimHalilUcan\\ResponseBuilder\\Facades\\ResponseBuilder;\n\n$items = Blog::paginate();\nreturn ResponseBuilder::success($items, BlogResource::class)\n    -\u003emessage('Blog Lists')\n    -\u003ebuild();\n```\n\nSee response below:\n\n```text\n{\n    \"meta\": {\n        \"status\": true,\n        \"code\": 200,\n        \"message\": \"Blog Lists\"\n    },\n    \"data\": [\n        {\n            \"id\": 1,\n            \"title\": \"Lorem Ipsum 1\",\n            \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n            \"published_at\": \"2022-12-03 18:09:21\",\n            \"\"created_at\"\": \"2022-12-03 18:09:21\" \n        },\n        {\n            \"id\": 2,\n            \"title\": \"Lorem Ipsum 2\",\n            \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n            \"published_at\": \"2022-12-03 18:19:35\",\n            \"created_at\": \"2022-12-03 18:19:35\" \n        },\n    ],\n    \"pagination\": {\n        \"total\": 60,\n        \"per_page\": 10,\n        \"current_page\": 1,\n        \"last_page\": 6,\n        \"count\": 10,\n        \"from\": 1,\n        \"to\":10,\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"\u0026laquo; Previous\",\n                \"active\": false\n            },\n            {\n                \"url\": \"your_app_url?page=1\",\n                \"label\": \"1\",\n                \"active\": true\n            },\n            {\n                \"url\": \"your_app_url?page=2\",\n                \"label\": \"2\",\n                \"active\": false\n            },\n            {\n                \"url\": \"your_app_url?page=3\",\n                \"label\": \"3\",\n                \"active\": false\n            },\n            {\n                \"url\": \"your_app_url?page=4\",\n                \"label\": \"4\",\n                \"active\": false\n            },\n            {\n                \"url\": null,\n                \"label\": \"...\",\n                \"active\": false\n            },\n            {\n                \"url\": \"your_app_url?page=2\",\n                \"label\": \"Next \u0026raquo;\",\n                \"active\": false\n            }\n        ]\n    }\n}\n```\n\n### Example 5\n\n```php\nuse IbrahimHalilUcan\\ResponseBuilder\\Facades\\ResponseBuilder;\n\n$items = [\n    'device_id'     =\u003e \"26728172-d050-4126-8ee2-4bfe8201565c\",\n    'secret'        =\u003e \"0184cd97-7351-7121-91cb-5a818f3eb4b0\",\n    'platform'      =\u003e \"iOS\",\n    'version'       =\u003e \"1.0\",\n    'language_code' =\u003e \"en\",\n    'country_code'  =\u003e \"TR\",\n    'time_zone'     =\u003e \"Europe/Istanbul\",\n];\n\n$validator = Validator::make($items, [\n    'device_id' =\u003e 'required|size:12', // device length should be 12 chars\n    'secret'    =\u003e 'required',\n    'platform'  =\u003e ['required', Rule::in('Android', 'iOS', 'Huawei')],\n]);\n\nreturn ResponseBuilder::error($validator-\u003eerrors())-\u003ebuild();\n\n```\n\nSee response below:\n\n```text\n{\n    \"meta\": {\n        \"status\": false,\n        \"code\": 422,\n        \"message\": \"Error\"\n   },\n   \"errors\": {\n        \"device_id\": [\"The device id must be 12 characters.\"]\n   }\n}\n```\n\n### Example 6\n```bash\n\nuse  IbrahimHalilUcan\\Traits\\FailedValidationTrait;\n\n\nclass BlogRequest extends Request {\n\n    use FailedValidationTrait;\n    .\n    .\n\n}\n```\n\nSee response below:\n\n```text\n{\n    \"meta\": {\n        \"status\": false,\n        \"code\": 422,\n        \"message\": \"Error\"\n   },\n   \"errors\": {\n        \"device_id\": [\"The device id must be 12 characters.\"]\n   }\n}\n```\n\n### Example 7\n\n```php\nuse IbrahimHalilUcan\\ResponseBuilder\\Facades\\ResponseBuilder;\n\nreturn ResponseBuilder::noContent()-\u003ebuild();\n```\n\nSee response below:\n\n```text\n{\n    \"meta\": {\n        \"status\": true,\n        \"code\": 204,\n        \"message\": \"OK\"\n    },\n    \"data\": null\n}\n```\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.\n\n## Contributing\nAny ideas are welcome. Feel free to submit any issues or pull requests.\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for details.\n\n## Security\n\nIf you discover any security related issues, please email ibrahimhalilucan@gmail.com instead of using the issue tracker.\n\n## Credits\n\n- [İbrahim Halil Uçan](https://github.com/ibrahimhalilucan)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE) for more information.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibrahimhalilucan%2Fresponse-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibrahimhalilucan%2Fresponse-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibrahimhalilucan%2Fresponse-builder/lists"}