Tengo una URL de API como:

http://example.com/api/driverAcceptOrder?id=bee74e39-ff38-46a6-9e5d-6db799d2be8c&driverId=3453a3a9-7f58-434a-8dab-95c3469e6238

El método es POST y toma 2 parámetros id y driverId

Cuando intento ejecutar esta URL en cartero, obtengo:

Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException

Ruta

Route::post('driverAcceptOrder/{id}/{driverId}', 'Api\DriversController@driverAcceptOrder');

Controlador

public function driverAcceptOrder(Request $request, $id, $driverId)
{
    $order = Order::findOrFail($id);
    $defs = OrderDefaultProgress::where('name', 'Driver OTW ke pelanggan')->first();
    $driver = Driver::where('id', $driverId)->with('user')->first();
    $order->update(['driver_id' => $driverId]);
    return response()->json([
        'data' => $driver,
        'message' => 'Pengemudi Dalam perjalanan menuju pelanggan.'
    ], 200);
}

Nota

  1. La ruta no está restringida por el middleware de Auth (su público)
  2. Agregué una excepción a mi archivo VerifyCsrfToken como protected $except = ['/api/*'];

¿Alguna idea?

-1
mafortis 22 ene. 2021 a las 08:34

1 respuesta

La mejor respuesta

Tu url es incorrecta

example.com/api/driverAcceptOrder?id=bee74e39-ff38-46a6-9e5d-6db799d2be8c&driverId=3453a3a9-7f58-434a-8dab-95c3469e6238

Aquí después de ? todo es parámetro de consulta que se utiliza en el método GET para enviar datos

Route::get('driverAcceptOrder',"..");

Que no se encuentra en su caso, por eso está recibiendo

NotFoundHttpException

Para su caso, la URL debe ser

example.com/api/driverAcceptOrder/bee74e39/3453a3a9-7f58-434a-8dab-95c3469e6238

Esto será entregado por

Route::post('driverAcceptOrder/{id}/{driverId}', 'Api\DriversController@driverAcceptOrder');

Puedes aprender más sobre

OBTENER y PUBLICAR aquí https: // www.w3schools.com/tags/ref_httpmethods.asp

2
Kamlesh Paul 22 ene. 2021 a las 05:40