Files
ars-backend/docs/User/user-api.md
ROOG 6356baacc0 main: 增强会话功能,支持消息管理和接口文档
- 添加 `last_message_id` 字段至 `chat_sessions` 表,更新其关联索引
- 实现会话更新接口,支持修改名称与状态并添加验证逻辑
- 增加会话列表接口,支持状态过滤与关键字查询
- 提供会话和消息相关的资源类和请求验证类
- 扩展 `ChatService` 服务层逻辑以处理会话更新和消息附加
- 编写测试用例以验证新功能的正确性
- 增加接口文档及 OpenAPI 规范文件,覆盖新增功能
- 更新数据库播种器,添加默认用户
2025-12-14 20:20:27 +08:00

2.5 KiB
Raw Permalink Blame History

接口文档JWT无状态 API

基地址:http://localhost:8000/api(容器默认映射 8000 端口)
自然语言:中文

  • 认证方式:在请求头添加 Authorization: Bearer {token}
  • 默认账号(来自 php artisan db:seedroot@example.com / Root@123456
  • 所有接口均返回 JSON失败时返回 { "message": "错误信息" }
  • 跨域:默认允许 http://localhost:5173,可通过环境变量 CORS_ALLOWED_ORIGINS(逗号分隔多个域名)调整。

健康检查

  • GET /health
    响应:{ "status": "ok" }

登录

  • POST /login
  • 请求体:
{ "email": "user@example.com", "password": "Password123" }
  • 响应 200
{
  "token": "jwt-token",
  "token_type": "bearer",
  "expires_in": 3600,
  "user": { "id": 1, "name": "root", "email": "root@example.com", "is_active": true }
}
  • 401凭证无效403用户已停用。

当前用户

  • GET /me(需要 JWT
  • 响应 200当前登录用户信息。

用户管理(需 JWT

字段约束:name 必填字符串(<=255email 邮箱唯一、password 最少 8 字符。

用户列表

  • GET /users
  • 查询参数:page(默认 1per_page(默认 15最大 100
  • 响应 200分页列表data 为用户数组,包含 id/name/email/is_active/created_at/updated_at

创建用户

  • POST /users
  • 请求体:
{ "name": "Alice", "email": "alice@example.com", "password": "Password123" }
  • 响应 201新建用户is_active: true)。

更新用户

  • PUT /users/{id}
  • 请求体(任意字段可选):
{ "name": "New Name", "email": "new@example.com", "password": "NewPass123" }
  • 响应 200更新后的用户。

停用用户

  • POST /users/{id}/deactivate
  • 响应 200is_activefalse

启用用户

  • POST /users/{id}/activate
  • 响应 200is_activetrue

示例cURL

# 登录
curl -X POST http://localhost:8000/api/login \
  -H "Content-Type: application/json" \
  -d '{"email":"root@example.com","password":"Root@123456"}'

# 创建用户(替换 TOKEN
curl -X POST http://localhost:8000/api/users \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Alice","email":"alice@example.com","password":"Password123"}'

# 获取用户列表(替换 TOKEN
curl -X GET http://localhost:8000/api/users \
  -H "Authorization: Bearer TOKEN"