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智研社是一个专注于人工智能领域的综合性平台

相关推荐
GuWenyue2 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
想会飞的蒲公英3 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
Miao121314 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
SeaTunnel4 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
CodexDave4 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
深度研习笔记4 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
曾阿伦4 小时前
MongoDB 查询语句备忘手册
数据库·mongodb
一叶龙洲4 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
CCPC不拿奖不改名4 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github