在用laravel写对外接口时发现laravel构造函数中是无法return,如果要使用return的话就需要用中间键了
流程:
1.创建中间件,创建成功后在/app/Http/Middlewar下会生成ApiCheck.php文件
php artisan make:middleware ApiCheck
2.在/app/Http/kernel.php注册中间件 ,因为我的是对外接口的中间键,所以在api中添加ApiCheck,如下
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
\App\Http\Middleware\ApiCheck::class,
],
];
3.ApiCheck中间键中就可以修改代码,添加return的相关操作了,如下,判断config参数是否存在
<?php
namespace App\Http\Middleware;
use Closure;
class ApiCheck
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!$request["config"]) return response()->json(["errorCode"=>1,"data"=> ["msg"=>"config is invild"]]);
return $next($request);
}
}
4.接口测试访问
test.png
网友评论