PHP 如何写 API 接口

很多做网站或者小程序的朋友,都听过“API接口”这个词——简单说,它就是不同程序之间的“传声筒”:比如你在点餐小程序里点了餐,小程序会把你点的菜品、地址这些信息,通过接口传给餐厅的点餐系统,餐厅系统再把“接单成功”的消息传回小程序,整个过程都靠API完成。而PHP作为入门门槛低、功能实用的后端语言,是很多人写API接口的选择。

先搞懂写API的核心准备

要写接口,不用先啃复杂的框架,先把两个基础准备做扎实:

PHP 如何写 API 接口

一是开启PHP的“跨域支持”。跨域简单说就是不同来源的程序不能随便通信,比如你的小程序是https://myorder.com,本地写接口的PHP是http://localhost,这就属于跨域。要解决这个,只要在PHP文件最顶部加三行代码就行,就像给门开个专属通道:header("Access-Control-Allow-Origin: *");,header("Access-Control-Allow-Methods: GET, POST");,header("Access-Control-Allow-Headers: Content-Type");,新手直接复制能用,不用纠结原理。

二是准备好数据存储。接口要拿数据存数据,最简单的就是用TXT文件当“临时小仓库”——比如把用户的订单信息存到order.txt里,不用先学数据库,适合练手。

写一个最基础的“获取数据接口”

先做个能读数据的接口,比如让小程序能拿到订单列表。这个接口用GET请求,就像你去商店问“今天有什么菜”,店主直接给你菜单。

首先新建一个get_orders.php文件,开头先加之前的跨域代码,然后写读取TXT的逻辑:先判断TXT文件存在不,不存在就返回空列表;如果存在,就把TXT里的内容读出来,转成数组,再用json_encode()转成小程序能看懂的JSON格式(小程序只认这种格式,就像你得说对方听得懂的话)。

举个实际的TXT内容例子:TXT里存的是[{"id":1,"food":"宫保鸡丁","address":"XX小区"},{"id":2,"food":"鱼香肉丝","address":"XX学校"}],接口读出来后,小程序就能直接拿到这些订单信息。

再做一个“提交数据的接口”

接下来做能存数据的接口,比如小程序提交订单,接口把订单存到TXT里,这用POST请求,就像你把写好的纸条递给店主,店主收下来存档。

还是新建一个submit_order.php,开头还是跨域代码,然后加两行逻辑:先判断是不是POST请求,不是的话就提示“只接受POST提交”;如果是,就拿小程序传过来的订单数据——用file_get_contents("php://input")就能拿到小程序发过来的原始数据,比如小程序传的是{"food":"西红柿炒蛋","address":"XX医院"},把它转成数组后,先给订单加个唯一ID(比如用当前时间戳,避免重复),再把新订单追加到TXT文件里,就像把新写的订单贴到仓库的本子最后。

新手容易踩的小坑

第一个坑是忘记跨域代码,接口写好了,小程序却报错“跨域”,查了半天才发现少了那三行;第二个是数据格式不对,比如存TXT的时候漏了逗号,读出来就会乱码,就像把本子上的句子涂成了一团,对方看不懂;第三个是权限问题,TXT文件要给PHP读写权限,就像仓库要给管理员开门的权限,不然存不了数据。

其实写API不用追求复杂,先把“读、存”这两个基础功能练熟,再慢慢学用MySQL替代TXT当数据仓库,用ThinkPHP、Laravel这些框架简化代码——毕竟API的核心是“能稳定传数据”,不用一开始就追求高大上的功能。

上一篇 Swift语言核心特性解析 从语法基础到实际应用场景的全面科普