增加远程调用
This commit is contained in:
parent
ed2e24d4ab
commit
3a3fac7c55
21
app/Http/Controllers/Remote/CallController.php
Normal file
21
app/Http/Controllers/Remote/CallController.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Remote;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Module\Module;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class CallController extends Controller
|
||||||
|
{
|
||||||
|
// invoke the remote method
|
||||||
|
public function __invoke(Request $request, Module $module) {
|
||||||
|
$request->validate([
|
||||||
|
'func' => 'required|string|max:255',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response = $module->remote($request->func, $request->all());
|
||||||
|
|
||||||
|
return $this->apiResponse($response[0], $response[1]);
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Models\Module;
|
namespace App\Models\Module;
|
||||||
|
|
||||||
|
use Http;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
@ -24,6 +25,18 @@ class Module extends Authenticatable
|
|||||||
'api_token'
|
'api_token'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
public function remote($func, $requests)
|
||||||
|
{
|
||||||
|
$http = Http::remote($this->api_token, $this->url);
|
||||||
|
$response = $http->post('functions/' . $func, $requests);
|
||||||
|
|
||||||
|
$json = $response->json();
|
||||||
|
$status = $response->status();
|
||||||
|
|
||||||
|
return [$json, $status];
|
||||||
|
}
|
||||||
|
|
||||||
protected static function boot()
|
protected static function boot()
|
||||||
{
|
{
|
||||||
parent::boot();
|
parent::boot();
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Http\Controllers;
|
|
||||||
use App\Http\Controllers\Admin\User\DropController;
|
use App\Http\Controllers\Admin\User\DropController;
|
||||||
|
use App\Http\Controllers\Remote\CallController;
|
||||||
use App\Http\Controllers\User;
|
use App\Http\Controllers\User;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
@ -13,4 +13,7 @@
|
|||||||
Route::apiResource('work-orders', User\WorkOrder\WorkOrderController::class);
|
Route::apiResource('work-orders', User\WorkOrder\WorkOrderController::class);
|
||||||
Route::apiResource('work-orders.replies', User\WorkOrder\ReplyController::class);
|
Route::apiResource('work-orders.replies', User\WorkOrder\ReplyController::class);
|
||||||
|
|
||||||
|
// 调用远程 API
|
||||||
|
Route::post('module/{module}', CallController::class)->name('call');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user