Skip to content

Commit 8c2fa62

Browse files
authored
Merge pull request #56 from Lomkit/feature/force-json-response
✨ enforces json response
2 parents e89093a + 0df3389 commit 8c2fa62

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Lomkit\Rest\Http\Middleware;
4+
5+
use Closure;
6+
use Illuminate\Http\Request;
7+
use Illuminate\Support\Str;
8+
use Symfony\Component\HttpFoundation\Response;
9+
10+
class EnforceExpectsJson
11+
{
12+
/**
13+
* Handle an incoming request.
14+
*
15+
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
16+
*/
17+
public function handle(Request $request, Closure $next): Response
18+
{
19+
if (!Str::contains($request->header('Accept'), 'application/json')) {
20+
$request->headers->set('Accept', 'application/json, '.$request->header('Accept'));
21+
}
22+
23+
return $next($request);
24+
}
25+
}

src/Rest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Lomkit\Rest\Contracts\Http\Routing\Registrar;
66
use Lomkit\Rest\Documentation\Schemas\OpenAPI;
77
use Lomkit\Rest\Http\Controllers\Controller;
8+
use Lomkit\Rest\Http\Middleware\EnforceExpectsJson;
89
use Lomkit\Rest\Http\Routing\PendingResourceRegistration;
910
use Lomkit\Rest\Http\Routing\ResourceRegistrar;
1011

@@ -29,12 +30,13 @@ public function resource(string $name, string $controller, array $options = [])
2930
$registrar = new ResourceRegistrar(app('router'));
3031
}
3132

32-
return new PendingResourceRegistration(
33+
return (new PendingResourceRegistration(
3334
$registrar,
3435
$name,
3536
$controller,
3637
$options
37-
);
38+
))
39+
->middleware(EnforceExpectsJson::class);
3840
}
3941

4042
/**

0 commit comments

Comments
 (0)