创建hello-service

前提

正常安装php8.2,包括模块 pgsql/mysqli, zip, curl, xml,用 php -v 检查版本,用 php -m 检查模块。
正常安装composer, composer -v 检查版本。
正常安装 hello-db 数据库,参考 hello-db 的内容。
正常安装 brew,并且用 brew 安装 php@8.2

步骤

  • 创建hello-service项目 composer create-project laravel/laravel new hello-service
    • 套件: No starter kit 保持一个最低的依赖,因为只提供API服务
    • 测试:PHPUnit
    • git: Yes
    • 数据库: PostgreSQL
  • 修改 composer.json
    • name: hello-service
  • 设定DB
    • 编辑 .env ,参考 hello-db 的内容
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=hellodb
DB_USERNAME=hellouser
DB_PASSWORD=123456
- 创建migration `add_username_to_users_table`,加一个 username字段 `$table->string('username')->unique();`
- 运行 `php artisan migrate`,创建所有的表
- 在 `User` model, $fillable里 加上 `username` 字段
    protected $fillable = [
        'name',
        'username',
        'email',
        'password',
    ];
- 创建数据种子 `php artisan make:seeder UserSeeder`,这里假定只有一个用户 hello, 密码为 123456
    - 在 `database/seeders/UserSeeder.php` 的 `run` 方法里加上 hello 用户
    - 在 `database/seeders/DatabaseSeeder.php` 的 `run` 方法里调用 `UserSeeder`
    - 运行 `php artisan db:seed`,创建用户
  • 设定 laravel/sanctum

Laravel 10 安装后默认就有 Sanctum,不需要再安装。而且users表只有email,要加一个username。

- `config/auth.php`
    - `guards` 新增一项 `api`
'api' => [
    'driver' => 'sanctum',
    'provider' => 'users',
],
  • 创建 api 文档

    • doc/api.yml
  • 创建 AuthController

    • 修改 app/Http/Controllers/Controller.php,加上通用的返回格式
    • 运行 php artisan make:controller AuthController ,并加上 login/logout 方法
  • 创建 UserController

    • 运行 php artisan make:controller UserController ,并加上 index/show/store/update/destroy 方法
    • 运行 php artisan make:request UserRequest,并加上 rules 方法
    • 运行 php artisan make:resource UserResource,并加上 toArray 方法
  • 设定 routes/api.php,加上 loginlogout 的路由

Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:sanctum')->post('/logout', [AuthController::class, 'logout']);
  • 检查路由

    • 运行 php artisan route:list,可以看到 loginlogout 的路由
    • 运行 php artisan serve,可以用 postman 测试 loginlogout 的路由
      • 或者用 valet 启用 valet park
  • 访问 API

    • 客户端应在发出请求时在 HTTP 请求的 Authorization 头中附带 token。格式通常为 Bearer <token>
    • 参考 hello-ui
  • 所有内容可以在 https://gitlab.com/hello-public/hello-service 获得

参考

hello-service: https://blog.youkuaiyun.com/weixin_66886617/article/details/135425612
hello-db: https://blog.youkuaiyun.com/weixin_66886617/article/details/135411591
hello-ui: https://blog.youkuaiyun.com/weixin_66886617/article/details/135429060

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值