2025 PHP REST API 快速入门指南:从零构建到实战

作者:API传播员 · 2025-10-13 · 阅读时间:6分钟

作为PHP开发的初学者,您可能会觉得构建一个简单的REST API有些复杂。然而,通过一份清晰且权威的指南,您可以轻松掌握REST API的开发技巧。在本教程中,我们将通过分步讲解,帮助您使用PHP和MySQL构建一个简单的REST API

REST API在现代网络开发中被广泛使用,主要用于数据的访问和操作。通过将REST API集成到您的Web应用程序中,可以轻松实现与现代前端框架的无缝交互。本教程将以一个从MySQL数据库获取用户列表的演示应用程序为例,带您深入了解API的构建过程。


教程的基本文件

在开始之前,您需要在本地创建一个目录来存放相关文件。假设该目录命名为“REST-API”。以下是本教程中涉及的主要文件:

  1. config.php:用于配置数据库连接,包含数据库凭据。
  2. employee.php:定义了与“employee”表交互的Employee类,包括以下功能:
    • 获取所有员工数据
    • 按ID获取单个员工
    • 添加新员工
    • 更新现有员工
    • 删除员工
  3. api.php:作为API的入口文件,处理HTTP请求并调用Employee类的方法,返回JSON格式的响应。
  4. **API请求
  5. index.php:包含API调用的示例代码,展示如何使用API的不同端点。

数据库架构

首先,我们需要为REST API创建一个数据库。在PHPMyAdmin中执行以下SQL命令来创建数据库:

CREATE DATABASE employee_management;

接下来,在employee_management数据库中创建一个名为employee的表,包含以下字段:

CREATE TABLE employee (
    id INT PRIMARY KEY AUTO_INCREMENT,
    emp_name VARCHAR(100) NOT NULL,
    emp_code VARCHAR(20) NOT NULL,
    emp_email VARCHAR(100) NOT NULL,
    emp_phone VARCHAR(20) NOT NULL,
    emp_address VARCHAR(255) NOT NULL,
    emp_designation VARCHAR(100) NOT NULL,
    emp_joining_date DATE NOT NULL
);

此表的结构用于存储员工的详细信息,您可以根据实际需求对其进行调整。


文件和代码说明

以下是各文件的详细说明及其作用:

配置文件:config.php

config.php文件是项目的核心配置文件,主要用于设置数据库连接。通过正确配置此文件,您可以确保与数据库的安全连接以及数据操作的稳定性。

主类文件:employee.php

employee.php文件定义了一个功能强大的Employee类,用于与employee表交互。以下是该类的主要方法:

  1. __construct($conn):构造函数,初始化数据库连接。
  2. getAllEmployees():获取所有员工数据。
  3. getEmployeeById($id):根据ID获取单个员工的数据。
  4. addEmployee($data):添加新员工。
  5. updateEmployee($id, $data):更新指定ID的员工数据。
  6. deleteEmployee($id):删除指定ID的员工。

这些方法封装了对员工数据的CRUD操作,确保代码结构清晰且易于维护。

API入口文件:api.php

api.php文件是API的核心入口,负责处理HTTP请求并调用Employee类的方法。以下是其主要功能:

  1. 根据HTTP方法(GET、POST、PUT、DELETE)和请求的端点,调用相应的Employee类方法。
  2. 将处理结果以JSON格式返回给客户端。

通过此文件,您可以实现对员工数据的增删改查操作。

cURL助手文件:curl_helper.php

curl_helper.php文件提供了一个通用的cURL请求函数sendRequest(),用于简化API请求的发送。以下是其主要功能:

  • 支持GET、POST、PUT、DELETE等HTTP方法。
  • 自动将请求数据编码为JSON格式。
  • 返回API响应及HTTP状态码。

示例代码如下:

function sendRequest($url, $method = 'GET', $data = []) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    switch ($method) {
        case 'POST':
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
            break;
        case 'PUT':
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
            break;
        case 'DELETE':
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
            break;
    }    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);    return json_encode(['response' => $response, 'http_code' => $httpCode]);
}

示例文件:index.php

index.php文件展示了如何调用API的不同端点。以下是一些示例:

  1. 获取所有员工数据
$employees = sendRequest('http://localhost/REST-API/api.php/employees', 'GET');
$employees = json_decode($employees, true);
  1. 按ID获取员工数据
$employeeId = 1;
$employee = sendRequest("http://localhost/REST-API/api.php/employees/$employeeId", 'GET');
$employee = json_decode($employee, true);
  1. 添加新员工
$data = [
    'emp_name' => 'John Doe',
    'emp_code' => 'E001',
    'emp_email' => 'john.doe@example.com',
    'emp_phone' => '1234567890',
    'emp_address' => '123 Street, City',
    'emp_designation' => 'Manager',
    'emp_joining_date' => '2022-01-01',
];
$result = sendRequest('http://localhost/REST-API/api.php/employees', 'POST', $data);
$result = json_decode($result, true);
  1. 更新员工数据
$employeeId = 1;
$data = [
    'emp_name' => 'Updated Name',
    'emp_code' => 'E002',
    'emp_email' => 'updated.email@example.com',
    'emp_phone' => '9876543210',
    'emp_address' => '456 Street, City',
    'emp_designation' => 'Supervisor',
    'emp_joining_date' => '2022-02-01',
];
$result = sendRequest("http://localhost/REST-API/api.php/employees/$employeeId", 'PUT', $data);
$result = json_decode($result, true);
  1. 删除员工
$employeeId = 1;
$result = sendRequest("http://localhost/REST-API/api.php/employees/$employeeId", 'DELETE');
$result = json_decode($result, true);

结论

通过本教程,您已经了解了如何使用PHP和MySQL构建一个简单的REST API。此API的设计具有高度的灵活性和可扩展性,您可以根据项目需求进行定制和扩展。

在实际开发中,建议使用最新版本的PHP,并遵循最佳性能实践,以确保API的高效性和安全性。通过不断优化和改进,您可以构建出满足特定需求的强大API解决方案。

原文链接: https://wpwebinfotech.com/blog/how-to-build-simple-rest-api-in-php/