pankaj-ag/larave-mobile-mobile-api

一个用于设置移动端的Laravel包

v1.1 2018-12-20 17:28 UTC

README

先决条件

此包需要您对 Laravel Passport 有基本了解。

安装

  1. 将此包添加到您的项目中。
  2. 现在,在控制器中添加 CanHaveAPIEndPoints 特性,该控制器将有助于移动服务。您也可以在基控制器中添加此特性并使用它。现在您可以使用 returnFormattedResponse 方法发送响应。此函数将检查请求并相应地发送响应。

仅处理Web响应

第一个参数是传递给视图的数据数组。第二个参数是视图名称。

return $this->returnFormattedResponse(['projects' => $projects], 'project.index');

处理Web和API响应

使用两个闭包发送针对Web和API的不同响应。

return $this->returnFormattedResponse(
    function () {
       // api response here
    },
    
    function () {
       // web response here
    }
);

异常处理

为了获得清晰的错误响应,您需要将特性添加到 App\Exceptions\Handler 类中,并在 report 方法中添加以下代码片段。

public function render($request, Exception $exception)
{
    if($this->isApi()) {
        return $this->renderErrorResponseForAPI($exception);
    }
    return parent::render($request, $exception);
}
    

身份验证中间件

如果您想为每个已认证的路由设置认证用户,请将 RestApiMiddleware 添加到您的项目中,并在路由上应用它。

在 kernel.php 中

'restapi' => ColoredCow\LaravelMobileAPI\RestAPIMiddleware::class,

在 routes/api.php 文件中

Route::group(['middleware' => ['auth:api', 'restapi:auth'] ], function () {
    // routes
});