我想为使用laravel开发的网站创建API。 API用于获取Android应用程序的数据。我是API概念的新手。所以我现在卡住了。我不知道从哪里开始。任何人都可以指导我正确的方向吗?
答案 0 :(得分:0)
根据Laravel的版本定义路线变化。
在Laravel 5.3中,我们可以在单独的api.php
文件中定义api,而不是routes.php
文件。
我可以说一些有助于REST API的基本要点。
身份验证:
您可以在后端(数据库)中使用auth_token,并在成功登录时更新身份验证令牌,并且在每个api请求中都应传递身份验证令牌。这将与后端的auth令牌匹配,如果它相同,那么我们将让用户获得数据响应。
路线:
与我们在laravel routes.php文件中定义路由相同。但最好像这样添加前缀。
Route::group(['prefix' => 'api/v1'], function()
{
Route::post('authenticate', 'APIV1Controller@authenticate');
}
使用它可以对路由进行分组,最好维护版本(v1),这样我们就可以通过维护不同版本(如v2)来更新api。
REST API客户端:
您可以使用邮递员或Firefox的REST API客户端插件来访问API。
接头:
要点击API,我们需要指定标头。要传递JSON请求,标题应为
Content-Type: application/json
在api响应中始终有status_code和消息。响应应该以JSON格式返回。
简单示例:
routes.php文件
Route::group(['prefix' => 'api/v1'], function()
{
Route::post('getUserData', 'APIV1Controller@getUserData');
}
APIV1Controller.php
public function getUserData(Request $request){
$user = User::select('name','phone')
->where('email','=',$request['email'])->first();
if($user){
return response()->json(['statusCode' => '200','message' => 'User Found','userDetails'=>$user]);
}
else{
return response()->json(['statusCode' => '400','message' => 'User Not Found']);
}
}
邮递员:
网址:www.example.com/api/v1/getUserData
标题:Content-Type: application/json
请求:{"email":"mytest@test.com"}
点击api,你会收到回应。
回应:
{"statusCode":"200","message":"User Found","userDetails":{"name":"Ganesh","phone":"1525353535"}}