【问题标题】:How To Build RESTful APIs Using PHP and Laravel如何使用 PHP 和 Laravel 构建 RESTful API
【发布时间】:2017-11-15 13:05:18
【问题描述】:

我想为使用 laravel 开发的网站创建一个 API。 API用于获取android应用程序的数据。我是API概念的新手。所以我现在卡住了。我不知道从哪里开始。谁能指引我正确的方向?

【问题讨论】:

  • 从这个documentation快速入门会很好
  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
  • 我尝试了文档。但我没有一个清晰的想法。
  • 请向我们展示或链接到您已阅读的所有文档,您认为这些文档将解释创建整个 API 应用程序所需的一切。

标签: android laravel rest api


【解决方案1】:

定义路由会根据 Laravel 的版本而有所不同。

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

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

  1. 身份验证:

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

  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 和 message。响应应以 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"}}
    

【讨论】:

  • 非常感谢大家。我会试试这个
猜你喜欢
  • 2015-06-13
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 2015-05-14
相关资源
最近更新 更多