Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将我的laravel项目转换为api?_Php_Laravel_Api_Laravel Passport - Fatal编程技术网

Php 如何将我的laravel项目转换为api?

Php 如何将我的laravel项目转换为api?,php,laravel,api,laravel-passport,Php,Laravel,Api,Laravel Passport,我有一个laravel项目,是关于学生及其课程的 该项目具有CRUD功能,用户(主要是学校管理员)可以在其中创建用户并分配他们的课程。我已经成功创建了这个项目 但是现在我如何使它成为一个API呢?。我需要将学生的课程分享到另一个网站,因此我需要创建一个API,对吗 我从未在laravel中创建过API,当我查看laravel的文档时,它有一个主题叫做API身份验证使用passport,这是说要求用户在访问API之前先登录吗 ?. 如果有人能解释一下如何创建API以及从何处开始,这将非常有帮助 您

我有一个
laravel
项目,是关于学生及其课程的

该项目具有
CRUD
功能,用户(主要是学校管理员)可以在其中创建用户并分配他们的课程。我已经成功创建了这个项目

但是现在我如何使它成为一个API呢?。我需要将学生的课程分享到另一个网站,因此我需要创建一个API,对吗

我从未在laravel中创建过
API
,当我查看laravel的文档时,它有一个主题叫做
API身份验证使用passport
,这是说要求用户在访问API之前先登录吗 ?.


如果有人能解释一下如何创建API以及从何处开始,这将非常有帮助

您正在尝试为另一个网站提供查看学生课程的权限。这些数据是公开的吗?如果是,则不需要身份验证。但这意味着每个拥有API URL的人都可以访问数据。在API上使用身份验证完全取决于您

现在,使用Laravel创建API非常简单。在线上有很多免费资源,比如:。只需在谷歌上搜索主题,了解更多信息

基本上,API在控制器和路由方面的工作方式与您所做的完全相同。在Laravel5.4中,api有一个单独的路由文件,位于
routes/api.php
中。这就是你定义路线的地方

Route::get('courses', 'Api\CourseController@index');
此路由将响应
https://www.website.com/api/courses
并将链接到
app/Http/Controllers/Api/CourseController.php中的函数
index()
。您必须自己创建该控制器

查看该路由文件,您可以看到一些开箱即用的内容

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});
这意味着路由
/api/user
将需要身份验证,因为
auth:api
中间件

到目前为止,在控制器中,可以返回视图。在api控制器中,您将返回响应

public function index()
{
    $courses = Course::all();
    return response()->json($courses);
}
调用网站的应用程序将收到一个包含课程数组的JSON对象。有关回复的更多信息,请点击此处:

关于api_令牌的信息 laravel提供的默认API身份验证通过检查用户表中的
API\u令牌
属性来工作。该api_令牌必须存在于发送到api的请求的标头中。然后,Laravel将使用该api_令牌来识别发出请求的用户。在默认应用程序中,要获取用户,您需要

$user = Auth::user();
在API控制器中,您可以

$user = Auth::guard('api')->user();
//Auth will look for api_token to get the user making the request

谢谢!。我将继续消化这些信息,并尝试创建一个简单的项目来理解这一点。你能解释一下吗?这是用户注册时创建的一次性令牌吗?ic。。。那么,它是在用户注册时自动创建的吗?thx@eddysedove你自己创造的。一个简单的随机字符串将执行
str_random(60)
以获得一个60个字符的随机字符串。对于api_令牌,我们需要在添加用户时创建一个长度为60个字符的随机字符串