PHP怎么写API接口_RESTful API基础写法介绍【介绍】

不用框架也能写RESTful接口,核心是用_SERVER\['REQUEST_METHOD'\]区分HTTP方法,json_encode()返回数据,并严格设置header('Content-Type: application/json; charset=utf-8'),任何输出前禁止echo、空白符或错误提示。怎么用 PHP 快速写一个可被调用的 RESTful 接口直接说结论:不用框架也能写,核心是靠 _SERVER'REQUEST_METHOD' 区分动作,用 json_encode() 返回数据,再加几行 header 设置。关键不是"多规范",而是"别让前端拿不到数据"。常见错误现象:405 Method Not Allowed(没处理对应 HTTP 方法)、500 Internal Server Error(没设 Content-Type 或输出了额外空格)、前端收不到 JSON(header 没写对或用了 echo 混淆)。必须手动设置 header('Content-Type: application/json; charset=utf-8');,否则浏览器/前端可能当文本解析所有输出前不能有任何 echo、print、空白符,包括文件末尾的换行用 file_get_contents('php://input') 读取 POST/PUT 的原始 body,别只依赖 _POST(它不处理 JSON)简单接口建议用 switch(_SERVER'REQUEST_METHOD') 分支,比一堆 if 更清晰GET 和 POST 请求怎么分别处理才不踩坑GET 用 _GET 拿参数没问题,但 POST 就容易错------尤其前端发的是 JSON 格式时,_POST 是空的,因为 PHP 默认只解析 application/x-www-form-urlencoded 和 multipart/form-data。GET 接口示例路径:/api/users?id=123 → 直接取 _GET\['id'\],记得用 filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT) 过滤POST 接口若接收 JSON:raw = file_get_contents('php://input'); → data = json_decode(raw, true);,再检查 data !== null不要在同一个脚本里混用 _POST 和 php://input,PHP 会因输入流已读完导致后者返回空字符串如果用 cURL 测试,记得加 -H "Content-Type: application/json",否则服务端可能忽略 body为什么返回 JSON 时 header 顺序和状态码这么重要HTTP 状态码不是装饰,前端会根据它做逻辑分支;header 顺序不对,有些客户端(比如旧版 iOS WebView)会直接丢弃响应体。 AI智研社 AI智研社是一个专注于人工智能领域的综合性平台

相关推荐
Bioinfo Guy4 分钟前
高分Panel复现系列|转录因子网络太乱?用模块框把重点圈出来
数据库·生物信息学·生信可视化
leisoo809710 分钟前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
WangYan202220 分钟前
基于XGBoost与AI的生态—地学多源数据建模:植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识别
python·机器学习·xgboost
ltl1 小时前
Disaggregated DB 合集:Socrates、PolarDB、Taurus 的共同模式
数据库
金銀銅鐵3 小时前
[Python] 借助 turtle 逐字展示唐诗《金缕衣》
python
Blossom i3 小时前
大数据预处理与采集实验一:使用Python操作MySQL数据库
数据库·mysql
雾时之林4 小时前
Linux--软件管理、源码包安装
linux·服务器·数据库
Python大数据分析@5 小时前
使用大模型MCP采集数据,爬虫已经无门槛
python·网络爬虫
quantdash_cc5 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash
65岁退休Coder5 小时前
LangChain v1.3.4 笔记 - 07 补充:链式调用 LCEL
后端·python·langchain