如何将我的 laravel 项目转换为 api?
how to convert my laravel project to an api?
我有一个 laravel
项目,它是关于学生和他们的课程的。
这个项目有CRUD
功能,用户(主要是学校的管理员)可以创建用户并分配他们的课程。我已经成功地创建了这个项目。
但是现在我该如何使它成为 API?。我需要将学生课程分享到另一个网站,因此我需要创建一个 API 对吗?
我从来没有创建过API in laravel
,当我查看Laravel的文档时,它有一个名为API authentication using passport
的主题,这是在说要求用户在访问之前先登录吗? API
?。
如果有人能解释一下有关创建 API 以及从哪里开始的信息,那将非常有帮助。
您正在尝试授予另一个网站访问权限以查看学生课程。数据是否公开?如果是,则不需要身份验证。但这意味着每个拥有 API URL 的人都可以访问数据。在 API 上使用身份验证完全取决于您。
现在,要创建 API,使用 Laravel 非常容易。在线有大量免费资源,例如:https://tutorials.kode-blog.com/laravel-5-rest-api。只是google更多的主题。
基本上,API 的工作方式与您在控制器和路由方面所做的完全一样。在 laravel 5.4 中,api 有一个单独的路由文件位于 routes/api.php
中。那是你定义路线的地方。
Route::get('courses', 'Api\CourseController@index');
此路由将响应 https://www.website.com/api/courses
并将 link 响应位于 app/Http/Controllers/Api/CourseController.php
中的函数 index()
。您必须自己创建该控制器。
查看那个路由文件,你可以看到开箱即用的东西
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
这意味着由于 auth:api
中间件,路由 /api/user
将需要身份验证。
到目前为止,在您的控制器中,您 return 观看。在 api 控制器中,您将 return 响应
public function index()
{
$courses = Course::all();
return response()->json($courses);
}
调用该网站的应用程序将收到包含一系列课程的 JSON object。更多关于回复的信息:https://laravel.com/docs/5.4/responses
关于api_token
laravel 提供的默认 API 身份验证通过检查用户 table 的 api_token
属性来工作。 api_token 必须出现在发送到 api 的请求的 headers 中。 Laravel 然后将使用 api_token 来识别发出请求的用户。在默认应用程序中,要获得用户,您需要
$user = Auth::user();
在您的 API 控制器中,您可以
$user = Auth::guard('api')->user();
//Auth will look for api_token to get the user making the request
我有一个 laravel
项目,它是关于学生和他们的课程的。
这个项目有CRUD
功能,用户(主要是学校的管理员)可以创建用户并分配他们的课程。我已经成功地创建了这个项目。
但是现在我该如何使它成为 API?。我需要将学生课程分享到另一个网站,因此我需要创建一个 API 对吗?
我从来没有创建过API in laravel
,当我查看Laravel的文档时,它有一个名为API authentication using passport
的主题,这是在说要求用户在访问之前先登录吗? API
?。
如果有人能解释一下有关创建 API 以及从哪里开始的信息,那将非常有帮助。
您正在尝试授予另一个网站访问权限以查看学生课程。数据是否公开?如果是,则不需要身份验证。但这意味着每个拥有 API URL 的人都可以访问数据。在 API 上使用身份验证完全取决于您。
现在,要创建 API,使用 Laravel 非常容易。在线有大量免费资源,例如:https://tutorials.kode-blog.com/laravel-5-rest-api。只是google更多的主题。
基本上,API 的工作方式与您在控制器和路由方面所做的完全一样。在 laravel 5.4 中,api 有一个单独的路由文件位于 routes/api.php
中。那是你定义路线的地方。
Route::get('courses', 'Api\CourseController@index');
此路由将响应 https://www.website.com/api/courses
并将 link 响应位于 app/Http/Controllers/Api/CourseController.php
中的函数 index()
。您必须自己创建该控制器。
查看那个路由文件,你可以看到开箱即用的东西
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
这意味着由于 auth:api
中间件,路由 /api/user
将需要身份验证。
到目前为止,在您的控制器中,您 return 观看。在 api 控制器中,您将 return 响应
public function index()
{
$courses = Course::all();
return response()->json($courses);
}
调用该网站的应用程序将收到包含一系列课程的 JSON object。更多关于回复的信息:https://laravel.com/docs/5.4/responses
关于api_token
laravel 提供的默认 API 身份验证通过检查用户 table 的 api_token
属性来工作。 api_token 必须出现在发送到 api 的请求的 headers 中。 Laravel 然后将使用 api_token 来识别发出请求的用户。在默认应用程序中,要获得用户,您需要
$user = Auth::user();
在您的 API 控制器中,您可以
$user = Auth::guard('api')->user();
//Auth will look for api_token to get the user making the request