我有点困惑,我的Web应用程序具有登录,注册,注销。一些仪表板的视图等(crud(,我也想为此应用程序制作API。
就像第三方使用的API一样,可以更新记录,可以删除记录等。
实际上应该有某种方法可以用移动应用程序用于crud。
我知道我们有该路由/api.php,但是我很困惑何时使用它。请解释情况,我空白。
更新:
方案
具有视图,身份验证系统等的应用程序, Android应用如何在同一应用程序上执行CRUD操作?
1.WEB路由使用会话状态,CSRF保护。这是否意味着API路由不使用会话状态,CSRF保护?
一切可能但不需要。您仍然可以使用会议等,但这是违反休息原则。
2.Laravel 5.3使用单独的网络和API路由,是否有任何优点?
这只是为了方便。在Laravel 5.2中,您需要为['Web']或['api']等路线指定中间件,但不再需要中间件。在存储在分离的文件中的5.3路线中,并指定不需要的中间件路线。
如果您在api.php中指定路由,则需要使用auth:api middleware。例如:
Route::group(['middleware' => ['auth:api']], function () {
Route::get('/test', function (Request $request) {
return response()->json(['name' => 'test']);
});
});
关于令牌auth和laravel 5.3的注释:
如果您已经设置了Laravel的默认身份验证系统,则还需要在用户表中添加API_Token的列。如果您使用的是DB播种机,则可能需要添加以下内容:
$table->char('api_token', 60)->nullable();
向您的用户表播种机。另外,只需手动添加列,然后用随机的60-Char键填充该列。
提出请求时,您可以将API_Token添加为url/querystring参数,例如:
domain.com/api/test?api_token=[your 60 char key].
您也可以将密钥作为标头发送(如果使用Postman或类似(,即:标题:授权,值:持票人[您的60 char键]。
我下令如果令牌不正确,请发送有用的错误,也将所有请求发送以下标题:
Header: Accept, Value: application/json. This allows the expectsJson() check in the unauthenticated() function inside App/Exceptions/Handler.php to work correctly.