Laravel - 当API路由未找到或匹配时应该发生什么?

12 浏览
0 Comments

Laravel - 当API路由未找到或匹配时应该发生什么?

我正在使用Laravel和Passport创建一个API,并使用Postman进行API的测试。在Postman中,我通过JSON格式获得输出结果。所以,当我在Postman中访问这个路由时,即http://localhost:8000/api/login,一切正常。但是,如果我的URL是http://localhost:8000/api/log,也就是错误的URL,那么它会返回一些HTML错误信息。我想要在这种情况下以JSON格式显示一个特定的消息,比如'Not Found'。如何在控制器中定义的方法或动作不存在时显示特定的消息?

0
0 Comments

当API路由未找到或不匹配时,应该发生什么?这个问题的出现原因是没有找到匹配的API路由或路由不匹配。解决方法是创建一个回退路由来控制响应。具体做法是在api.php文件中添加以下代码:

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

在postman中,如果要使用登录功能,需要将HTTP方法从post更改为get。如果想要同时使用登录功能和处理未找到的问题,需要创建两个路由,一个用于API,另一个用于用户界面。用户可以通过用户界面获取访问令牌,并将其用于API代码中。此外,还需要为未找到的问题创建一个路由。

0