如何使用PHP和Laravel构建RESTful API

时间:2017-06-13 16:19:34

标签: android laravel rest api

我想为使用laravel开发的网站创建API。 API用于获取Android应用程序的数据。我是API概念的新手。所以我现在卡住了。我不知道从哪里开始。任何人都可以指导我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

根据Laravel的版本定义路线变化。

在Laravel 5.3中,我们可以在单独的api.php文件中定义api,而不是routes.php文件。

我可以说一些有助于REST API的基本要点。

  1. 身份验证:

    您可以在后端(数据库)中使用auth_token,并在成功登录时更新身份验证令牌,并且在每个api请求中都应传递身份验证令牌。这将与后端的auth令牌匹配,如果它相同,那么我们将让用户获得数据响应。

  2. 路线:

    与我们在laravel routes.php文件中定义路由相同。但最好像这样添加前缀。

    Route::group(['prefix' => 'api/v1'], function()
    {
       Route::post('authenticate', 'APIV1Controller@authenticate');
    }
    

    使用它可以对路由进行分组,最好维护版本(v1),这样我们就可以通过维护不同版本(如v2)来更新api。

  3. REST API客户端:

    您可以使用邮递员或Firefox的REST API客户端插件来访问API。

  4. 接头:

    要点击API,我们需要指定标头。要传递JSON请求,标题应为

    Content-Type: application/json
    
  5. 在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"}}