简体   繁体   中英

POST calls return 404 In Laravel

I am creating signup Api 1st call is GET and 2nd is POST call. When I make GET[POSTMAN] call I get proper response from the controller but when I make POST it returns 404.

web.php

// sign up api

Route::get('signup','Api\RegistrationController@createUser');
Route::post('/signup','Api\RegistrationController@storeUser');

RegistrationController.php

public function createUser(){
    return "Get : Sign up";
}

public function storeUser() {
    // validate the form
    $this->validate(request(),[
        'firstname' => 'required',
        'lastname' => 'required',
        'email' => 'required',
        'password' => 'required'
    ]);

    // create and save the user
    $user = Register::create(request(['firstname', 'lastename', 'email', 'password']));

    return "Registration complete";
}

I am using laravel 5.4. When route url is kept same (ie signup) then GET method executes for POST call, when route url different it returns 404.

Screenshot : its a POST call but GET route executed

Try this and let me know:

use Illuminate\Http\Request;

public function storeUser(Request $request) {
// validate the form

$this->validate($request,[
  'firstname' => 'required',
  'lastname' => 'required',
  'email' => 'required',
  'password' => 'required'
]);

 // create and save the user

  $user = Register::create($request->all());

  return "Registration complete";
}

Note: When developing api's always define Api routes in api.php file.

Write All your API Routes in api.php file instead of web.php

use Illuminate\Http\Request;
public function storeUser(Request $request) {

// first check whether your request is coming here or not
// if not coming
// it is the issue of Routing   

dd('coming..');
//if it prints coming then comment this dd

$this->validate($request,[
 'firstname' => 'required',
 'lastname' => 'required',
 'email' => 'required',
 'password' => 'required'
]);

   $user = Register::create($request->all());
}

对于 api requests ,你不应该使用扩展 FormRequest 的自定义 Http Request 而是use Illuminate\\Http\\Request;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM