Skip to content

Commit fe1fe78

Browse files
author
Dipesh Sukhia
committed
add json respons header
1 parent 1190d4c commit fe1fe78

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

config/config.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@
1515
*/
1616
'model_directory_path' => 'app',
1717

18+
'allow_cross_origin' => env('API_ALLOW_CROSS_ORIGIN', false),
19+
'json_response' => env('API_JSON_RESPONSE', true),
1820
];

src/LaravelApiGeneratorServiceProvider.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,10 @@ public function register()
5959
$this->app->singleton('laravel-api-generator', function (string $model) {
6060
return new LaravelApiGenerator($model);
6161
});
62+
63+
$this->app['router']->middleware('ApiHeaderInject', 'Bhavingajjar\LaravelApiGenerator\Middleware\ApiHeaderInject');
64+
65+
$this->app['router']->aliasMiddleware('ApiHeaderInject', \Bhavingajjar\LaravelApiGenerator\Middleware\ApiHeaderInject::class);
66+
$this->app['router']->pushMiddlewareToGroup('api', \Bhavingajjar\LaravelApiGenerator\Middleware\ApiHeaderInject::class);
6267
}
6368
}

src/Middleware/ApiHeaderInject.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
namespace Bhavingajjar\LaravelApiGenerator\Middleware;
3+
4+
use Closure;
5+
use Illuminate\Http\Response;
6+
use Illuminate\Support\Facades\Config;
7+
8+
class ApiHeaderInject
9+
{
10+
public function handle($request, Closure $next)
11+
{
12+
$response = $next($request);
13+
if(config('laravel-api-generator.json_response')) {
14+
$response = $response->headers('Content-Type', 'application/json')
15+
->header('Accept', 'application/json');
16+
}
17+
if(config('laravel-api-generator.allow_cross_origin')) {
18+
$response = $response->header('Access-Control-Allow-Origin', '*')
19+
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
20+
}
21+
return $response;
22+
}
23+
}

0 commit comments

Comments
 (0)