coloredcow / laravel-mobile-api
A Laravel package to setup mobile
Installs: 593
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 5
Type:project
This package is auto-updated.
Last update: 2024-11-02 06:59:04 UTC
README
Prerequisite
This package requires a basic understanding of Laravel Passport.
Installation
- Add this package in your project.
- Now add the trait
CanHaveAPIEndPoints
in the controller that will contribute in the mobile service. You can also add this trait in the base controller and use it. Now you can use returnFormattedResponse method to send the respose. This function will check the request and send the reponse accordingly.
Handling web responses only
The first argument is the array of data you pass to the view. The second argument is the view name.
return $this->returnFormattedResponse(['projects' => $projects], 'project.index');
Handling both web and API responses
Use two closures for sending different responses for web and api.
return $this->returnFormattedResponse( function () { // api response here }, function () { // web response here } );
Exception Handling
For clear error responses you need to add the trait in the App\Exceptions\Handler class and add the following code snippt in report method.
public function render($request, Exception $exception) { if($this->isApi()) { return $this->renderErrorResponseForAPI($exception); } return parent::render($request, $exception); }
Auth Middleware
If you want to set the auth user for every authenticated route then add RestApiMiddleware
in your project and apply in on routes.
In kernel.php
'restapi' => ColoredCow\LaravelMobileAPI\RestAPIMiddleware::class,
In routes/api.php file
Route::group(['middleware' => ['auth:api', 'restapi:auth'] ], function () { // routes });