我正在使用dingo / api进行项目,并且我的所有路线都不是1.
routes.php文件
$api = app('api.router');
$api->version('v1',['prefix' => 'api'], function ($api) {
$api->post('users', "App\Http\Controllers\Auth\UsersController@store");
...
});
存储方法:
/**
*
* @param \App\Http\Requests\Auth\StoreUserRequest $request
* @return \Illuminate\Http\Response
*/
public function store(StoreUserRequest $request)
{
if( ! $this->isAdminRequest() )
{
return $this->dispatch(new RegisterUserCommand($request));
}
}
此路线抛出405 Method Not Allowed Exception
。
php artisan api:routes
表示它已在本地和服务器上注册。
我正在使用POSTMAN测试我的api并拥有所有必填字段。
作为回应,我确实允许:发布。
注意:
感谢任何帮助。感谢。
更新:
好吧,这对我来说是一个非常愚蠢的错误。我正在点击&#39; domain / api / users /&#39; 。删除尾随的&#39; /&#39; 有效。 但问题是,本地&#39; <&#39; 有效,而不是服务器上。 因此,保留这个问题可能需要一些解释。
答案 0 :(得分:1)
非常好的问题,自从遇到这个问题。您的更新应该在答案中,所以如果您这样做,我可能会删除我的。对我来说问题是我的action
中有一个斜杠。 <{1}}而不是/some/action/
,其中路线是后者所期望的。
我曾认为Laravel会将这个可选的尾部斜杠作为一个特征来考虑当地环境中的行为,但事实并非如此。