Merhaba,
Sadece GET ve POST isteklerini işleyecek bir rota oluşturdum. Aşağıdaki gibi controllerda metodlar tanımladım.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ServisController extends Controller
{
/**
* Web servislerini yönlendirir.
*
* @param Request $request İstek
*/
public function index(Request $request)
{
$servis = $request->input('servis');
if (empty($servis)) {
return response()->json(['success' => false, 'data' => 'Geçersiz servis'], 400);
}
if (!method_exists($this, $servis)) {
return response()->json(['success' => false, 'data' => 'Tanımsız servis'], 400);
}
return $this->$servis($request);
}
/**
* Gelen verileri sisteme kaydeder.
*
* @param Request $request İstek
*/
public function ornek(Request $request)
{
return response()->json([
'success' => true,
'servis' => $request->input('servis'),
'data' => $request->input(),
'method' => $request->method(),
]);
}
}
https://laravel.test/webService/?servis=ornek adresine, Postman üzerinden POST isteği gönderiyorum. Body içerisinde form-data olarak değerleri gönderiyorum. Fakat bu istek verilerini okuyamıyorum, sadece GET istek verisini okuyabiliyorum.
Rota tanımlamasını hem match metodu hem de any ile oluşturup deneme yaptım. Ama sonuç değişmedi.
Route::match(['get', 'post'], '/webService', [ServisController::class, 'index'])->name('servis.web');
Route::any('/webService', [ServisController::class, 'index'])->name('servis.web');
Rotadan dönen çıktı aşağıdaki şekildedir.
{
"success": true,
"servis": "ornek",
"data": {
"servis": "ornek"
},
"method": "GET"
}
Yardımlarınız için şimdiden teşekkürler.