用纯PHP创建REST API:全栈开发者必备的从零到一实践
作者:xiaoxin.gao · 2025-07-04 · 阅读时间:5分钟
前言 随着 前端开发 技术的迅猛发展,全栈开发 已成为开发者的重要技能。然而,许多开发者在掌握流行框架(如 L […]
前言
随着 前端开发 技术的迅猛发展,全栈开发 已成为开发者的重要技能。然而,许多开发者在掌握流行框架(如 Laravel、Symfony)时,往往忽视了 PHP 的底层实现。深入学习纯 PHP 创建 REST API 的能力,对于增强 Web 开发技能至关重要。本文将引导你通过 PHP 从零开始,手把手教你如何创建一个功能完善的 RESTful API,并帮助你更好地理解其底层机制。
项目概述
在这个项目中,我们将为一个简单的博客系统创建 API,其中包含文章和分类功能。通过实现这个项目,你将学习以下技能:
- PHP面向对象编程(OOP) 技术
- 数据库连接与操作(MySQL)
- RESTful API设计原则 和最佳实践
- 使用 Postman 测试 API 的技能
技术栈
为了帮助你更高效地构建和测试 API,本文所使用的技术栈包括:
- PHP:核心编程语言,用于实现业务逻辑。
- MySQL:关系型数据库,用于存储数据。
- Postman:API 测试工具,确保 API 接口的可靠性。
- XAMPP:本地开发环境,包含 Apache 和 MySQL。
- PDO:PHP 数据对象,简化与数据库的交互。
一、项目初始化
1. 数据库准备
为了存储博客文章和分类信息,我们需要先配置数据库。以下是 SQL 结构:
-- posts表结构
CREATE TABLE posts (
id INT PRIMARY KEY AUTO_INCREMENT,
category_id INT,
title VARCHAR(255),
body TEXT,
author VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- categories表结构
CREATE TABLE categories (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
按照以下步骤进行数据库设置:
- 启动 XAMPP 中的 MySQL 服务。
- 在 phpMyAdmin 中创建一个名为
my_blog
的数据库。 - 导入以上的 SQL 文件(可以通过项目的 GitHub 仓库下载)。
2. 项目文件结构
接下来,创建以下文件夹和文件结构:
php_rest_myblog/
├── config/
│ └── Database.php
├── models/
│ └── Post.php
├── api/
│ └── posts/
│ └── read.php
二、数据库连接类
1. 创建 Database
类
在 config/Database.php
中,创建用于连接数据库的 Database 类:
< ?php
class Database {
private $host = "localhost";
private $dbname = "my_blog";
private $username = "root";
private $password = "";
private $conn;
public function connect() {
$this- > conn = null;
try {
$this- > conn = new PDO(
"mysql:host=" . $this- > host . ";dbname=" . $this- > dbname,
$this- > username,
$this- > password
);
$this- > conn- > setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Connection Error: " . $e- > getMessage();
}
return $this- > conn;
}
}
? >
三、模型类开发
1. 创建 Post
模型类
在 models/Post.php
中,创建处理文章数据的 Post 模型类:
< ?php
class Post {
private $conn;
private $table = "posts";
public $id;
public $category_id;
public $title;
public $body;
public $author;
public $created_at;
public function __construct($db) {
$this- > conn = $db;
}
public function read() {
$query = "SELECT c.name AS category_name, p.id, p.category_id, p.title, p.body, p.author, p.created_at
FROM " . $this- > table . " p
LEFT JOIN categories c ON p.category_id = c.id
ORDER BY p.created_at DESC";
$stmt = $this- > conn- > prepare($query);
$stmt- > execute();
return $stmt;
}
}
? >
四、API端点开发
1. 创建文章读取端点
在 api/posts/read.php
中,创建 REST API 端点来读取文章数据:
< ?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
include_once '../../config/Database.php';
include_once '../../models/Post.php';
$database = new Database();
$db = $database- > connect();
$post = new Post($db);
$result = $post- > read();
$num = $result- > rowCount();
if ($num > 0) {
$posts_arr = array();
$posts_arr['data'] = array();
while ($row = $result- > fetch(PDO::FETCH_ASSOC)) {
extract($row);
$post_item = array(
'id' = > $id,
'title' = > $title,
'body' = > html_entity_decode($body),
'author' = > $author,
'category_id' = > $category_id,
'category_name' = > $category_name
);
array_push($posts_arr['data'], $post_item);
}
echo json_encode($posts_arr);
} else {
echo json_encode(array('message' = > 'No Posts Found'));
}
? >
五、API 测试
通过 Postman 测试 API:
- 打开 Postman。
- 创建 GET 请求。
- 输入 URL:
http://localhost/php_rest_myblog/api/posts/read.php
。 - 点击 Send 按钮。
如果配置无误,你将看到返回的 JSON 数据,包含所有文章及其分类信息。
总结
通过本文,你已经学会如何使用 纯PHP 创建 RESTful API。这种从零开始的方式虽然更为繁琐,但能帮助你深入理解 Web 开发的核心概念。希望你能从中获得启发,打造更复杂的项目!
原文引自YouTube视频:https://www.youtube.com/watch?v=OEWXbpUMODk
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- GPT-OSS 模型驱动在线编程课 AI 助教,3 天打造追问式对话 API
- Kimi K2-0905 256K上下文API状态管理优化:长流程复杂任务实战
- Go工程化(四) API 设计上: 项目结构 & 设计
- 如何获取Dify AI API开放平台秘钥(分步指南)
- 手机号查询API:获取个人信息的便捷工具
- 大型项目中如何规避 Claude 限流风险?开发实战指南
- 为什么要编写高质量的在线API文档?
- 基于DeepSeek-V3.1开源技术的开发者社区应用审核API指南
- 2025 PHP REST API 快速入门指南:从零构建到实战
- TikTok API使用指南:短视频图像生成实践案例
- Java 生鲜电商平台 – API 接口设计之 token、timestamp、sign 具体架构与实现
- HIP-1217热点:DeFi镜像节点API实时gRPC流式余额校验实战