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

相关推荐
花酒锄作田8 小时前
Pydantic校验配置文件
python
hboot8 小时前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
GBASE13 小时前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
ZhengEnCi19 小时前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi21 小时前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽21 小时前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
用户8358086187911 天前
基于 Self-RAG 与列表级重排序的进阶 RAG 系统设计与实现
python
xiezhr1 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
Warson_L2 天前
Python `Annotated` 与 LangGraph Reducer 学习笔记
python
韩师傅2 天前
海天线算法的前世今生
python·计算机视觉