生成 API 和 laravel 护照

generating API and laravel passport

我是 Laravel 的新手,请回答我的问题。

我正在开发一个 Laravel 5.8 系统,其中包含两个用户级别。

  1. 用户
  2. 管理员

  • 经过身份验证的用户可以查看帖子并将其存储到数据库中。 (行动:indexshowstore
  • 经过身份验证的管理员可以查看用户发布的帖子并批准发布。 (行动:indexshowstoredestroy
  • 我的数据库 table:books 如下所示:

  • id
  • 名字
  • numbers_of_pages
  • 类型
  • 作者
  • 和用户table:

  • id
  • 姓名
  • 电子邮件
  • 密码
  • 和管理员 table:

  • id
  • 名字
  • 电子邮件
  • 密码
  • 第一题:

    在我的api.php

    Route::apiResource('books', 'BookController');
    

    以下是我想要的路线结构。

    # index()
    // http://127.0.0.1:8000/api/v1/books/drama -> get all books where type is drama
    // http://127.0.0.1:8000/api/v1/books/novel -> get all books where type is novel
    // http://127.0.0.1:8000/api/v1/books/magazine -> get all books where type is magazine
    

    如何使用命令创建的 BookController 实现此目的:

    php artisan make:controller BookController --api
    

    以及如何在路由中添加前缀v1?我不想在 RouteServiceProvider.php.

    中为该版本号添加前缀

    另一个问题:
    如何对多个用户进行 oauth?管理员和用户都是 api.

    的消费者

    因为我现在正在开发一个api自己,我知道你的一些问题并且已经成功完成了这个任务,所以我试着回答你的问题。

    到 URL 中的 'v1' 前缀:我在我的 routes/api.php 文件中用

    做了这个
    Route::prefix('/v1')->group(function () { 
    // my routes for version 1
    }
    

    关于您的 user/admin 内容的一个词:我没有将其放入 2 个单独的表格中。这个想法是,你有一群用户,其中只有一些是管理员。那么,如果设置了此标志,为什么不用 admin 标志来标记它们并为用户模型(在您的 User.php 中)提供一个 is_admin 仅 return 的方法truefalse。所以你可以看到,登录用户是不是管理员。

    有了这个,您可以随时在您的应用程序中使用 auth()->user()->is_admin 检查这是否是管理员。

    希望能帮到你一点点

    现在,解决您的 Books 问题。 我会简单地将另一条路线放入我的 routes/api.php like

    Route::get('books/{category}', 'BookController@category')->name('books.category');
    

    并在我的 BookController 中创建一个名为 public function category(String $category) 的新函数。在此,您可以检查 $category 是否是有效的类别名称并处理 return.