| Q | A
| ----------------- | ---
| Bug? | yes
| New Feature? | no
| Framework | Laravel
| Framework version | 7.1.14
| Package version | 2.0.0-alpha1
| PHP version | 7.1.14
{"message":"405 Method Not Allowed","status_code":405}
Expecting to be able to make a post request
Make a post request to 'api/v1/users/language/2'
(I am removing trailing slashes from url)
.env
API_PREFIX=api
API_VERSION=v1
api.config
'auth' => [
'jwt' => 'Dingo\Api\Auth\Provider\JWT'
],
'middleware' => [
'\App\Http\Middleware\HandleCors'
],
Route
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function ($api) {
$api->group(['prefix' => 'v1/users'], function ($api) {
$api->post('/language/{language_id}', 'Fastacademy\Aweza\Controllers\Api\V1\UsersController@updateLanguage')
->name('fastacademy.aweza.user.updateLanguage');
});
});
Controller method:
public function updateLanguage($language_id)
{
$user = \JWTAuth::parseToken()->authenticate();
$user->language_id = $language_id;
if (!$user->save()) {
return $this->response()->error('Unable to update language_id', 500);
} else {
return $this->response();
}
}
HandleCors (extends Barryvdh\Cors\HandleCors)
public function handle($request, Closure $next)
{
$cors = $this->cors;
$this->events->listen(ResponseWasMorphed::class, function (ResponseWasMorphed $event) use($cors, $request) {
$cors->addActualRequestHeaders($event->response, $request);
});
return $next($request);
}
}
Postman request obviously defaults to http so had to add https://
Most helpful comment
Postman request obviously defaults to http so had to add https://