harishdpatel / apiresponse
This is common API response structre for laravel based project. It can be used in laravel and lumen
Requires
None
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-17 23:27:47 UTC
README
Laravel API response structure class for json response. In this package, there are many build-in methods for different status code wise response for an API request.
How to use
For use this package, You just need to create an object of the ApiResponse class
Step -1: In your Controller
public $apiResponse = ''; /** * Create a new controller instance. * * @param ApiResponse $apiResponseClass */ public function __construct(ApiResponse $apiResponseClass) { $this->apiResponse = $apiResponseClass; }
Step-2: Use the $apiResponse object for response in your methods.
/** * Show the application dashboard. * * @return \Illuminate\Contracts\Support\Renderable */ public function index() { $posts = Post::get(); return $this->apiResponse->respondWithMessageAndPayload($posts, 'Posts has been retrieved successfully.'); }
You will receive API response like below
{
"success": true,
"message": "Posts has been retrieved successfully.",
"payload": [
{
"id": 5,
"category_id": 1,
"user_id": 1,
"title": "Laravel June Chapter2",
"description": "Laravel June Chapter2",
"updated_at": "2019-09-11 12:28:02",
}
]
}
There are many other use full methods for API response method.
return $this->apiResponse->respondWithData(array $data); return $this->apiResponse->respondWithMessage($message = "Ok"); return $this->apiResponse->respondWithError('Posts has been retrieved successfully'); return $this->apiResponse->respondWithMessageAndPayload($payload = null, $message = "Ok"); return $this->apiResponse->respondWithError($message = "Error", $e = null, $data = null); return $this->apiResponse->respondOk($message = "Ok"); return $this->apiResponse->respondCreated($message = "Created"); return $this->apiResponse->respondCreatedWithPayload($payload = null, $message = "Created"); return $this->apiResponse->respondUpdated($message = "Updated"); return $this->apiResponse->respondUpdatedWithPayload($payload = null, $message = "Updated"); return $this->apiResponse->respondDeleted($message = "Deleted"); return $this->apiResponse->respondDeletedWithPayload($payload = null, $message = "Deleted"); return $this->apiResponse->respondUnauthorized($message = "Unauthorized"); return $this->apiResponse->respondForbidden($message = "Forbidden"); return $this->apiResponse->respondNotFound($message = "Not Found"); return $this->apiResponse->respondValidationError($message = "Validation Error", $data = null); return $this->apiResponse->respondInternalError($message, $e); return $this->apiResponse->respondServiceUnavailable($message, $e); return $this->apiResponse->respondCustomError($message, $status_code, $e); return $this->apiResponse->respondNotImplemented($message = "Internal Error"); return $this->apiResponse->respondResourceConflict($message = "Resource Already Exists"); return $this->apiResponse->respondResourceConflictWithData($payload = null, $message = "Resource Already Exists", $responseCode = ResponseHTTP::HTTP_CONFLICT); return $this->apiResponse->respondWithFile($file, $mime); return $this->apiResponse->respondNoContent($message); return $this->apiResponse->respondBadRequest($message = "Bad Request"); return $this->apiResponse->respondHTTPNotAcceptable($message = "HTTP Not Acceptable"); return $this->apiResponse->respondExceptionError($status, $message, $status_code, $payload);
The package has a bellow response structure from all the method
{
"success": true,
"message": "",
"payload": []
}
In Debug mode
{
"success": false,
"message": '',
"payload": '',
"debug": ''
}
However, if you want to change the response structure or add any new methods in for that does not exist in our package, You just need to create a custom response class and extend ApiResponse class. Override the getResponseStructure in a Custom response class and use that class to the application.
e.g.
namespace App\Http\Response; use HarishPatel\ApiResponse\ApiResponse; use Symfony\Component\HttpFoundation\Response; class CustomApiResponse extends ApiResponse { public function getResponseStructure($success = false, $payload = null, $message = '', $debug = null) { if ($success) { $data = [ 'message' => $message, 'data' => $payload ]; } else { $data = [ 'error' => [ 'code' => Response::$statusTexts[$this->getStatusCode()], 'http_code' => $this->getStatusCode(), 'message' => $message, ] ]; } return $data; } }
License
laravel-api-response is open-sourced software licensed under the MIT license.