tucker-eric/laravel-xml-middleware

一个用于接收XML请求的Laravel中间件

1.5.0 2023-07-25 17:06 UTC

This package is auto-updated.

Last update: 2024-09-03 03:13:57 UTC


README

Latest Stable Version Total Downloads License Build Status

一个用于接收XML请求的Laravel中间件

配置

通过Composer安装

composer require tucker-eric/laravel-xml-middleware

注册服务提供者

config/app.php中将服务提供者添加到提供者数组中

    'providers' => [
        //Other Service Providers
        XmlMiddleware\XmlRequestServiceProvider::class,
    ];

注册中间件

app/Http/Kernel.php

    protected $routeMiddleware = [
            /// Other Middleware
            'xml' => \XmlMiddleware\XmlRequestMiddleware::class,
        ];

将中间件应用于路由

将中间件添加到您需要的路由中

控制器中间件

class MyController extends Controller
{
    public function __construct()
    {
        $this->middleware('xml');
    }
}

路由中间件

    Route::group(['middleware' => 'xml'], function() {
        Route::post('my-api-endpoint', 'MyOtherController@store');
    });
        Route::post('my-api-endpoint', 'MyOtherController@store')->middleware('xml');

使用中间件访问XML输入

如果您使用中间件,它将自动将XML注入请求作为数组,您可以使用$request->all()在控制器中访问XML数据

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();
    }
}

访问XML输入

如果您不使用中间件来访问XML输入,请使用Request上的xml()方法

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

Class MyOtherController extends Controller
{
    public function store(Request $request)
    {
        $xml = $request->xml();
    }
}

要将XML请求作为对象访问,请将false传递给xml()方法

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

Class MyOtherController extends Controller
{
    public function store(Request $request)
    {
        $xml = $request->xml(false);
    }
}