使用 Turso PHP SDK 构建 RESTful API:PHP + SQLite 实战教程
一. 教程概述
在本教程中,我们将使用 Turso HTTP PHP SDK 逐步完成 RESTful API 的搭建过程。通过本文,你将学习如何使用 PHP 和 SQLite 实现一个简单 API,包括用户的创建、读取、更新和删除(CRUD)操作。
二. 前置条件
在开始之前,请确保开发环境满足以下要求:
- PHP 版本:PHP 8.3 或更高
- Composer:用于管理 PHP 依赖项
三. 初始化项目
- 创建新项目目录并初始化 Composer:
mkdir my-turso-php-api
cd my-turso-php-api
composer init
- 按提示配置
composer.json
文件。 - 安装主要依赖:
composer require darkterminal/turso-client-http notrab/dumbo
提示:
darkterminal/turso-client-http
是 Turso 提供的 HTTP PHP SDK,用于与 Turso 数据库交互;notrab/dumbo
用于快速创建 HTTP 路由。
四. 创建数据库
接下来创建一个 SQLite 数据库来存储用户信息。可以使用 Turso 提供的工具生成带有必要表结构的数据库:
- 完成数据库创建后,生成 数据库令牌。
- 构造数据库连接字符串:
dbname=libsql://...&authToken=...
建议将敏感信息存储为环境变量,以便在生产环境安全使用。
五. 构建 RESTful API
在项目根目录创建 index.php
文件,并依次实现用户 CRUD 操作。
1. 读取所有用户
定义 GET /users
端点:
$app->get('/users', function ($context) use ($db) {
$result = $db->query('SELECT * FROM users')->fetchArray(LibSQL::LIB_ASSOC);
return $result;
});
fetchArray
会将查询结果以关联数组返回。
2. 读取单个用户
定义 GET /users/:id
端点:
$app->get('/users/:id', function ($context, $id) use ($db) {
$result = $db->query('SELECT * FROM users WHERE id = ?', [$id])->fetchArray(LibSQL::LIB_ASSOC);
return $result[0] ?? null;
});
如果用户不存在,返回 null
。
3. 创建用户
定义 POST /users
端点:
$app->post('/users', function ($context) use ($db) {
$data = $context->getBody();
if (!isset($data['name'], $data['email'])) {
return ['error' => 'Name and email are required'];
}
$db->query('INSERT INTO users (name, email) VALUES (?, ?)', [$data['name'], $data['email']]);
return ['id' => $db->lastInsertId()];
});
包含基本输入验证,确保 name
与 email
字段必填。
4. 更新用户
定义 PUT /users/:id
端点:
$app->put('/users/:id', function ($context, $id) use ($db) {
$data = $context->getBody();
$fields = [];
foreach ($data as $key => $value) {
$fields[] = "$key = ?";
}
$query = 'UPDATE users SET ' . implode(', ', $fields) . ' WHERE id = ?';
$db->query($query, array_merge(array_values($data), [$id]));
return ['id' => $id];
});
根据传入字段动态构建 SQL 更新语句。
5. 删除用户
定义 DELETE /users/:id
端点:
$app->delete('/users/:id', function ($context, $id) use ($db) {
$db->query('DELETE FROM users WHERE id = ?', [$id]);
return ['id' => $id];
});
删除成功后返回删除的用户 ID。
六. 运行 API
在 index.php
文件末尾添加:
$app->run();
使用 PHP 内置服务器运行:
php -S localhost:8000
七. 测试 API
可以使用 cURL 或 Postman 测试 API 功能:
- 创建新用户
curl -X POST http://localhost:8000/users \
-H "Content-Type: application/json" \
-d '{"name": "John Doe", "email": "john@example.com"}'
- 获取所有用户
curl http://localhost:8000/users
- 获取单个用户
curl http://localhost:8000/users/1
- 更新用户
curl -X PUT http://localhost:8000/users/1 \
-H "Content-Type: application/json" \
-d '{"name": "Anonymous"}'
- 删除用户
curl -X DELETE http://localhost:8000/users/1
八. 注意事项
在生产环境中,需要进一步增强 API 的安全性和可维护性:
- 添加错误处理机制
- 使用库进行输入验证
- 实现身份验证和授权
- 配置 CORS 支持跨域请求
- 防止 SQL 注入等安全风险
随着项目增长,建议将路由、数据库操作和业务逻辑拆分到不同文件,以提升代码可维护性。
原文链接: https://turso.tech/blog/building-a-restful-api-with-php-and-sqlite
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 完整指南:如何在应用程序中集成和使用ChatGPT API
- Amazon Bedrock × Stability AI:直播配图API批量渲染7天训练营
- InterSystems IRIS 2022.2 使用 JWT 保护 REST API 教程
- API分析 – 什么是 API 分析?
- 天文信息检索服务:如何让星空探索变得触手可及?
- 如何使用DBAPI快速搭建自己的API平台
- Workers AI合作模型助力短剧制作平台脚本生成API实战
- 如何获取 GPT-OSS API 密钥(分步指南)
- 人脸识别 API 合规升级下的银行开放 API 2025 全栈实战清单
- GPT-OSS 模型驱动在线编程课 AI 助教,3 天打造追问式对话 API
- Kimi K2-0905 256K上下文API状态管理优化:长流程复杂任务实战
- Go工程化(四) API 设计上: 项目结构 & 设计