PHP 接口开发入门:接收请求、处理数据、返回 JSON

API 开发 2026-08-22 4 浏览

PHP 写接口的核心就三件事:接收请求、处理数据、返回 JSON。框架帮你把这套流程标准化了,但理解原生写法,能帮你明白框架背后在做什么。

一个最小接口长什么样

<?php
header("Content-Type: application/json; charset=utf-8");

$method = $_SERVER["REQUEST_METHOD"];
$path = trim(parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH), "/");

// 简单路由:GET /api/hello
if ($method === "GET" && $path === "api/hello") {
    echo json_encode(["code" => 0, "data" => ["message" => "你好,接口"]], JSON_UNESCAPED_UNICODE);
    exit;
}

echo json_encode(["code" => 404, "message" => "接口不存在"]);

这段代码展示了接口的基本骨架:设置 JSON 响应头、按方法和路径分发、统一 JSON 返回。真实项目里路由会抽出来做配置,但原理一样。

接收参数

GET 参数在 $_GET,POST 表单在 $_POST,JSON body 要自己读:

$raw = file_get_contents("php://input");
$data = json_decode($raw, true);

前端用 fetch 传 JSON 时,后端必须用上面这种方式取,$_POST 是空的。

统一返回格式

给所有接口定一个固定的返回结构,前端写起来省心:

function resp($data = null, $code = 0, $msg = "ok") {
    echo json_encode([
        "code" => $code,
        "msg"  => $msg,
        "data" => $data
    ], JSON_UNESCAPED_UNICODE);
    exit;
}

异常处理

接口里出错不能直接白屏,要捕获后返回结构化错误:

try {
    $user = get_user($id);
    if (!$user) resp(null, 404, "用户不存在");
    resp($user);
} catch (Throwable $e) {
    resp(null, 500, "服务器开小差了");
}

安全提醒

写接口最容易出的三个安全问题:

  • SQL 注入:拼 SQL 时参数必须走预处理(PDO prepare),永远不要直接拼接用户输入;
  • 越权:拿到 id 就查数据,不考虑这个 id 是不是当前用户自己的——接口要校验资源归属;
  • 信息泄露:报错信息里带 SQL、路径等细节,线上环境要关掉错误显示(display_errors = Off)。

接口开发 80% 的时间在处理数据和排查问题,骨架搭好、格式统一、异常兜底,剩下的就是业务逻辑的事。配合上一篇 RESTful 设计规范看,一套完整的接口体系就成型了。