tucker-eric / laravel-xml-middleware
A Laravel Middleware to accept XML requests
Installs: 1 170 251
Dependents: 1
Suggesters: 0
Security: 0
Stars: 18
Watchers: 4
Forks: 10
Open Issues: 2
Requires
- illuminate/http: ^5.0|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/support: ^5.0|^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-10-03 03:18:43 UTC
README
A Laravel Middleware to accept XML requests
Configuration
Install Through Composer
composer require tucker-eric/laravel-xml-middleware
Register The Service Provider
In config/app.php
add the service provider to the providers array:
'providers' => [ //Other Service Providers XmlMiddleware\XmlRequestServiceProvider::class, ];
Register the middleware
In app/Http/Kernel.php
protected $routeMiddleware = [ /// Other Middleware 'xml' => \XmlMiddleware\XmlRequestMiddleware::class, ];
Applying the middleware to routes
Add the middleware to your route as desired
Controller Middleware
class MyController extends Controller { public function __construct() { $this->middleware('xml'); } }
Route Middleware
Route::group(['middleware' => 'xml'], function() { Route::post('my-api-endpoint', 'MyOtherController@store'); });
Route::post('my-api-endpoint', 'MyOtherController@store')->middleware('xml');
Accessing XML Input With Middleware
If you are using the middleware it will automatically inject the xml into the request as an array and you you can access the xml data in your controller with the $request->all()
:
use Illuminate\Http\Request; use App\Http\Controllers\Controller; class MyController extends Controller { public function __construct() { $this->middleware('xml'); } public function store(Request $request) { $request->all(); } }
Accessing XML Input
To access the xml input without the middleware use the xml()
method on the Request
:
use Illuminate\Http\Request; use App\Http\Controllers\Controller; Class MyOtherController extends Controller { public function store(Request $request) { $xml = $request->xml(); } }
To access the xml request as an object pass false
to the xml()
method:
use Illuminate\Http\Request; use App\Http\Controllers\Controller; Class MyOtherController extends Controller { public function store(Request $request) { $xml = $request->xml(false); } }