零框架!用 Core PHP 极速打造轻量级 RESTful API(完整可抄代码)
作者:API传播员 · 2025-11-04 · 阅读时间:5分钟
本文详细介绍了如何使用原生PHP构建轻量级RESTful API的分步指南,包括项目目录结构设置、.htaccess配置、核心CRUD操作实现以及API测试方法。特别适合需要无框架解决方案的开发项目,提供高效实用的原生PHP API开发方法。
一. 为什么选择原生 PHP?🤔
- 零依赖——不用
composer install等到天黑 🌌 - 完全控制——想返回 XML 就 XML,想 JSON 就 JSON,自由到飞起 🕊️
- 轻量级——内存占用只有 KB 级,低配 VPS 也能飙车 🏎️
定 KPI 时,把「开发任务管理系统KPI」拉出来,给团队设个“接口 95th 延迟 ≤ 120 ms”,量化才好评绩效 📊!
二. 项目脚手架 ⚙️
推荐目录👇
/my-rest-api/
├── api/v1/index.php # 唯一入口
├── data/users.json # 临时“数据库”
└── .htaccess # 路由重写
.htaccess 一键把所有请求塞进入口:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api/v1/(.*)$ api/v1/index.php?request=$1 [QSA,L]
写完先让「代码审查助手」扫一遍,确保正则没写爆,安全分 +1 🔍!
三. 核心 API 逻辑 🌟
以下代码已修复原文 > 乱码,直接粘进 index.php 就能跑 ✅
<?php
header("Content-Type: application/json; charset=utf-8");
/*========== 工具函数 ==========*/
function getUsers(): array {
return json_decode(file_get_contents(__DIR__.'/../../data/users.json'), true) ?: [];
}
function saveUsers(array $users): void {
file_put_contents(__DIR__.'/../../data/users.json', json_encode($users, JSON_PRETTY_PRINT));
}
/*========== 路由分发 ==========*/
$method = $_SERVER['REQUEST_METHOD'];
$endpoint = trim($_GET['request'] ?? '', '/');
switch ($method) {
case 'GET': handleGet($endpoint); break;
case 'POST': handlePost(); break;
case 'PUT': handlePut($endpoint); break;
case 'DELETE': handleDelete($endpoint); break;
default:
http_response_code(405);
echo json_encode(['message' => 'Method Not Allowed']);
}
/*========== CRUD 处理器 ==========*/
function handleGet(string $req): void
{
$users = getUsers();
if ($req === '') {
echo json_encode($users);
return;
}
$user = array_filter($users, fn($u) => $u['id'] == $req);
$user ? echo json_encode(array_values($user)[0])
: echo json_encode(['message' => 'User not found'], JSON_PRETTY_PRINT);
}
function handlePost(): void
{
$input = json_decode(file_get_contents('php://input'), true);
$users = getUsers();
$newId = $users ? end($users)['id'] + 1 : 1;
$newUser = ['id' => $newId, 'name' => $input['name'], 'email' => $input['email']];
$users[] = $newUser;
saveUsers($users);
http_response_code(201);
echo json_encode($newUser, JSON_PRETTY_PRINT);
}
function handlePut(string $req): void
{
$input = json_decode(file_get_contents('php://input'), true);
$users = getUsers();
foreach ($users as &$u) {
if ($u['id'] == $req) {
$u['name'] = $input['name'];
$u['email'] = $input['email'];
saveUsers($users);
echo json_encode($u, JSON_PRETTY_PRINT);
return;
}
}
echo json_encode(['message' => 'User not found'], JSON_PRETTY_PRINT);
}
function handleDelete(string $req): void
{
$users = getUsers();
foreach ($users as $k => $u) {
if ($u['id'] == $req) {
array_splice($users, $k, 1);
saveUsers($users);
echo json_encode(['message' => 'User deleted'], JSON_PRETTY_PRINT);
return;
}
}
echo json_encode(['message' => 'User not found'], JSON_PRETTY_PRINT);
}
想再懒一点?「代码生成」30 秒给你生成完整 CRUD 模板,接着「代码优化」自动把 N+1 查询、重复连接池全部修好,性能翻倍 🚀!
四. 一键测试 🧪
# 查全部
curl http://localhost/api/v1/
# 查单用户
curl http://localhost/api/v1/1
# 新增
curl -X POST http://localhost/api/v1/ \
-H "Content-Type: application/json" \
-d '{"name":"Alice","email":"alice@ok.com"}'
# 更新
curl -X PUT http://localhost/api/v1/1 \
-H "Content-Type: application/json" \
-d '{"name":"Alice Pro","email":"alice@pro.com"}'
# 删除
curl -X DELETE http://localhost/api/v1/1
测试通过后用「代码文档生成器」一键生成 Markdown 接口文档,前端同事直呼友好 📚!
五. 安全 & 最佳实践 🔐
- 全站 HTTPS:免费 Let’s Encrypt 证书 5 分钟搞定 🔒
- 输入验证:
filter_var($email, FILTER_VALIDATE_EMAIL)走一波 ✉️ - 速率限制:Redis + 令牌桶,防刷防爆破 ⏱️
- 升级数据库:把
users.json换成 MySQL,再用 PDO 预编译语句,SQL 注入说拜拜 👋
把上述检查点写进「开发任务管理系统KPI」——“高危漏洞修复时长 ≤ 1 个工作日”,目标量化,安全不背锅 📈!
六. 结论 & 下一站 🏁
原生 PHP 也能写出优雅、易维护的 RESTful API:
目录清晰 → 路由重写 → CRUD 封装 → 文档自动生成,全程 AI 提示词护航,开发效率直接 ×2 🚤!
原文链接: https://200oksolutions.com/blog/lightweight-php-restful-api/
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
最新文章
- Deribit API – 入门指南
- REST API命名规范的终极指南:清晰度和一致性的最佳实践
- Go:基于 MongoDB 构建 REST API — Fiber 版
- 免费IP地址查询API接口推荐
- 【2025】AI 占星报告批量生成器|基于 Astro-Seek API 微调 7B 模型,一键输出每日/每周运势
- 微信API接口调用凭证+Access token泄露
- 最流行的API认证方法
- 将 GraphQL 单体迁移至 Apollo Federation
- 声音即身份:声纹识别API如何改变身份验证的未来
- 国内API KEY 密钥免费的AI平台及其使用指南
- 全面解读:REST API与OpenAPI的区别、应用及最佳实践指南
- 5款强大且高效的API漏洞扫描工具推荐