Laravel-如果找不到或匹配API路由,应该怎么办?

时间:2018-11-16 04:08:12

标签: json laravel api

我正在使用Passport在Laravel中创建一个API,并使用Postman对API进行测试。我在Postman中以JSON获取输出,因此当我在Postman中找到该路由时,即http://localhost:8000/api/login可以正常工作。但是,如果我的URL是http://localhost:8000/api/log,这意味着URL错误,那么它会返回HTML错误,在这里我想显示一条消息,可能是“未找到”或其他JSON格式。在控制器中未定义方法或动作时,如何显示特定消息?

2 个答案:

答案 0 :(得分:1)

看看这些有关5.5+版本中的后备路由的文章

https://themsaid.com/laravel-55-better-404-response-20170921

https://laravel-news.com/404-responses-laravel-api

如您所见,您可以创建一个后备路由,该路由可以控制响应。

所以您想要这样的东西:

Route::fallback(function(){
    return response()->json(['message' => 'Not Found.'], 404);
})->name('api.fallback.404');

答案 1 :(得分:0)

您可以为某些HTTP错误方法提供自定义错误页面:

  

如果您希望为404 HTTP状态代码定制错误页面,请创建一个resources/views/errors/404.blade.php。该文件将处理您的应用程序生成的所有404错误。

https://laravel.com/docs/5.4/errors#custom-http-error-pages