增加远程调用
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;
|
||||
|
||||
use Http;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
@ -24,6 +25,18 @@ class Module extends Authenticatable
|
||||
'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()
|
||||
{
|
||||
parent::boot();
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers;
|
||||
use App\Http\Controllers\Admin\User\DropController;
|
||||
use App\Http\Controllers\Remote\CallController;
|
||||
use App\Http\Controllers\User;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
@ -13,4 +13,7 @@
|
||||
Route::apiResource('work-orders', User\WorkOrder\WorkOrderController::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