如何使用PHP构建一个简单的RESTful API - Medium

作者:API传播员 · 2025-12-17 · 阅读时间:4分钟

在本文中,我们将探讨如何使用 PHP 构建一个简单的 RESTful API。通过一个名为“phpapistarter”的项目,我们可以快速搭建一个基础的 API 服务框架。以下是具体的实现步骤和代码文件的功能解析。


克隆项目代码

首先,我们API 服务器代码。您可以通过以下命令克隆项目代码:

git clone -b original https://github.com/crmcmullen/medium-php-api-starter.git phpapistarter

请注意,如果您使用了其他文件夹名称,请确保在代码中更新相应的路径。


API 服务文件结构

克隆完成后,API 服务的主要文件和功能如下:

index.php

index.php 是一个简单的入口文件,主要功能包括:

  • 允许跨源请求(CORS)。
  • 预加载所有必要的类。
  • 验证传入的 API 请求。
  • 将函数请求交由 API 处理程序处理。

/src/api_handler.php

这是 API 请求。以下是其关键功能:

  • loadFunctionMap 函数:将所有面向公共的端点及其所属的类预加载到一个数组中。该数组支持为函数名设置别名。例如,公共端点为 getToken,但内部函数名为 fnGetToken,可以通过该数组进行映射。
  • validateRequest 函数:验证请求是否包含 API 密钥和令牌,检索调用方的 app_API_Key 记录,并使用 API 密钥对 JWT 进行解码。同时,它会检查令牌是否匹配且未过期。
  • getCommandexecCommand 函数:分别负责从函数映射中检索类和函数名,并将其转换为带参数的函数调用。
  • 核心端点 getToken:这是当前版本中唯一有效的端点,也是本演示的重点。

未来,您可以通过修改 loadFunctionMap 数组,轻松添加新的 API 端点

/src/app_autoloader.php

此文件用于预先注册 API 所需的所有类,以加速类的加载过程。

/src/app_jwt.php

该文件主要用于处理 JSON Web Token(JWT)的相关操作。

/src/app_response.php

这是一个简单的类库,提供标准的 HTTP 响应代码及其描述,便于统一 API 的响应格式。

/src/db-classes/data_access.php

这是一个抽象类,主要功能包括:

  • 提供与 MySQL 数据库的连接(通过 db_connect 函数实现)。
  • 定义一个抽象函数 getResultSetArray,用于检索 ResultSet 数组。

需要注意的是,db_connect 函数中的连接变量目前是硬编码的。在后续项目中,这些变量将被替换为从 INI 文件中读取的动态配置。

/src/db-classes/app_api_key.php

此文件是 app_api_key 数据库表的类,主要用于:

  • 检索 API 密钥的调用方记录。
  • 对令牌进行编码和解码操作。

总结

通过上述文件和功能的组合,您已经构建了一个基础的 RESTful API 服务框架。虽然当前版本只有一个端点(getToken),但框架的设计使得未来添加新的 API 端点变得非常简单和高效。

接下来,您可以根据项目需求逐步扩展 API 的功能,例如添加更多的端点、改进数据库连接配置,以及增强安全性等。

原文链接: https://medium.com/better-programming/how-to-build-a-simple-restful-api-in-php-c719f03cfa0a