用 Laravel 11.x 做纯API端

Laravel 11 简化了很多内容,把一些很少需要改动的内容默认隐藏起来,使整个project文件数量减少了很多,如果做纯API的话,再把前端相关的内容删除后就更简洁了。

初始化

先安装laravel installer (Installation - Laravel 11.x - The PHP Framework For Web Artisans)

创建一个project

不使用初始包,测试用Pest简化代码,初始化 git,数据库用 sqlite 方便本地开发

创建 token 模式的验证方式

安装Sanctum来管理 token (Laravel Sanctum - Laravel 11.x - The PHP Framework For Web Artisans)

运行 migrate 后User表就会加上 token字段,然后在 User model里加上HasApiTokens

创建一个 AuthController 来负责管理token

创建login, logout的方法

在 api.php 里加上路由

创建UserController 返回用户信息

创建测试

用Pest来测试,创建AuthTest.php

引入 DatabaseTransactions 就是为了保持数据库干净,测试后会自动Rollback。 token 获得后要使用 header Authorization 来进行认证。在测试过程中可以用Log::debug来打印日志,方便调试。

源码:项目概览 - hello-service - GitCode

相关推荐
寺中人15 小时前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
hengdonghui17 小时前
Writeup 4 津门杯 2021 Web hate_php
php·web·ctf·通配符
现任明教教主~19 小时前
企业查询系统源码
php
派小心.19 小时前
页面关闭前埋点丢失:sendBeacon验收
开发语言·php
我就是不信20 小时前
TCP 套接字中的 I/O 缓冲:原理、机制与调优实践
网络·tcp/ip·php
张小姐的猫20 小时前
【Linux】网络编程 —— 五种IO模型
linux·运维·服务器·网络·c++·人工智能·php
ESDWAN20 小时前
跨境电商网络专线怎么选?从带宽、延迟到SD-WAN部署与带宽管理的完整落地指南
开发语言·网络·php
qetfw21 小时前
Debian iSCSI Target 与 open-iscsi:LVM 后端、ACL 与客户端验证
linux·服务器·debian·php
刘胡子大叔21 小时前
PHP 扩展加载失败
php
一木 之林1 天前
阿里云百炼与通义千问接入
开发语言·php