山頂 發表於 2021-8-2 14:38:00

如何用PHP写接口

<p>  对于php的入学者来说,很少接触api,因此对于如何写不知所措,其实开发API 比开发WEB 更简洁,但可能逻辑更复杂,因为API 其实就是数据输出,不用呈现页面,所以也就不存在MVC(API 只有M 和C),和WEB 开发一样,首先需要一些相关的参数,这些参数,都会由客户端传过来,也许是GET也许是POST,这个需要开发团队相互之间约定好,或者制定统一规范。</p>
<p>  </p>
<p>  1. 我们写接口就要有一个相应的格式</p>
<p>    我写接口喜欢使用 status,msg,result 这三个返回。<span style="color: rgba(255, 0, 0, 1)"> status = 返回码 ,msg = 返回提示 ,result = 返回数据库(一般获取数据才需要,php返回一个数组)</span></p>
<p>  2. 一般接口GET请求都是获取,POST请求都是设置(增加,修改,删除)</p>
<p>    在PHP中我们一般使用 <span style="color: rgba(255, 0, 0, 1)">$_GET['key']</span> 这种格式来获取get参数&nbsp; key就是你传过来的键</p>
<p>              &nbsp;<span style="color: rgba(255, 0, 0, 1)">$_POSTkey']</span> 这种格式来获取post参数&nbsp; key就是你传过来的键</p>
<p>  3. 返回数据需要注意</p>
<p>    <span style="color: rgba(255, 0, 0, 1)">我们在返回数据后是不需要在执行php代码,所以返回最好是直接exit();</span></p>
<p>&nbsp;</p>
<p><span style="color: rgba(0, 0, 0, 1)">  我就不多说废话了,等你们以后写多了就知道了,下面为你们来个登录,注册的接口</span></p>
<p><span style="color: rgba(0, 0, 0, 1)">  </span></p>
<p><span style="color: rgba(0, 0, 0, 1)">登录接口</span></p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre>&lt;?<span style="color: rgba(0, 0, 0, 1)">php
</span><span style="color: rgba(0, 128, 128, 1)">header</span>("Content-type:text/html; charset=utf-8"<span style="color: rgba(0, 0, 0, 1)">);

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">登录一般都是get请求 所以我们这里使用一个变量接受所以get请求</span>

<span style="color: rgba(128, 0, 128, 1)">$data</span> = <span style="color: rgba(128, 0, 128, 1)">$_GET</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">吧所有获取的参数赋值给data</span>

<span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(128, 0, 128, 1)">$data</span><span style="color: rgba(0, 0, 0, 1)">){
    ajaxResult([</span>'status'=&gt;-1,'msg'=&gt;'请使用GET请求','result'=&gt;<span style="color: rgba(0, 0, 0, 1)">[]]);
}

</span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$data</span>['password']) || !<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$data</span>['username'])){   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">判断所需要的参数是否存在</span>
    ajaxResult(['status'=&gt;-1,'msg'=&gt;'缺少参数','result'=&gt;<span style="color: rgba(0, 0, 0, 1)">[]]);
}

</span><span style="color: rgba(0, 0, 255, 1)">if</span>(<span style="color: rgba(128, 0, 128, 1)">$data</span>['username'] == 'admin' &amp;&amp; <span style="color: rgba(128, 0, 128, 1)">$data</span>['password'] == '123456'){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">判断账号密码是否存在</span>
    <span style="color: rgba(128, 0, 128, 1)">$r</span> = ['username'=&gt;'admin','password'=&gt;'123456'];<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">需要返回的数据</span>
    ajaxResult(['status'=&gt;1,'msg'=&gt;'登录成功','result'=&gt;<span style="color: rgba(128, 0, 128, 1)">$r</span><span style="color: rgba(0, 0, 0, 1)">]);
}</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
    ajaxResult([</span>'status'=&gt;-100,'msg'=&gt;'账号或密码错误','result'=&gt;<span style="color: rgba(0, 0, 0, 1)">[]]);
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> ajaxResult(<span style="color: rgba(128, 0, 128, 1)">$data</span>){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">这里定义一个方法用来返回 json请求</span>
    <span style="color: rgba(0, 0, 255, 1)">exit</span>(json_encode(<span style="color: rgba(128, 0, 128, 1)">$data</span><span style="color: rgba(0, 0, 0, 1)">));
}</span></pre>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>注册接口&nbsp; (注册与登录差不多啊)</p>
<div class="cnblogs_code">
<pre>&lt;?<span style="color: rgba(0, 0, 0, 1)">php
</span><span style="color: rgba(0, 128, 128, 1)">header</span>("Content-type:text/html; charset=utf-8"<span style="color: rgba(0, 0, 0, 1)">);

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">登录一般都是post请求 所以我们这里使用一个变量接受所以post请求</span>

<span style="color: rgba(128, 0, 128, 1)">$data</span> = <span style="color: rgba(128, 0, 128, 1)">$_POST</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">吧所有获取的参数赋值给data</span>

<span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(128, 0, 128, 1)">$data</span><span style="color: rgba(0, 0, 0, 1)">){
    ajaxResult([</span>'status'=&gt;-1,'msg'=&gt;'请使用POST请求','result'=&gt;<span style="color: rgba(0, 0, 0, 1)">[]]);
}

</span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$data</span>['password']) || !<span style="color: rgba(0, 0, 255, 1)">isset</span>(<span style="color: rgba(128, 0, 128, 1)">$data</span>['username'])){   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">判断所需要的参数是否存在</span>
    ajaxResult(['status'=&gt;-1,'msg'=&gt;'缺少参数','result'=&gt;<span style="color: rgba(0, 0, 0, 1)">[]]);
}

</span><span style="color: rgba(0, 0, 255, 1)">if</span>(<span style="color: rgba(128, 0, 128, 1)">$data</span>['username'] == 'admin' &amp;&amp; <span style="color: rgba(128, 0, 128, 1)">$data</span>['password'] == '123456'){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">判断账号密码是否存在</span>
    <span style="color: rgba(128, 0, 128, 1)">$r</span> = ['username'=&gt;'admin','password'=&gt;'123456'];<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">需要返回的数据</span>
    ajaxResult(['status'=&gt;1,'msg'=&gt;'注册成功','result'=&gt;<span style="color: rgba(128, 0, 128, 1)">$r</span><span style="color: rgba(0, 0, 0, 1)">]);
}

</span><span style="color: rgba(0, 0, 255, 1)">function</span> ajaxResult(<span style="color: rgba(128, 0, 128, 1)">$data</span>){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">这里定义一个方法用来返回 json请求</span>
    <span style="color: rgba(0, 0, 255, 1)">exit</span>(json_encode(<span style="color: rgba(128, 0, 128, 1)">$data</span><span style="color: rgba(0, 0, 0, 1)">));
}</span></pre>
</div>
<p>&nbsp;</p>
<p>接口就是这么简单</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/quan846951943/p/15089782.html
頁: [1]
查看完整版本: 如何用PHP写接口