php设计API

Posted by

假设网址为:https://api.example.com/api

1.GET形式:

比如我们得到什么结果就输出什么结果:

<?php
$a = $_GET['abc'];
echo $a;
?>

现在我们在浏览器上输入网址:

https://api.example.com/api?abc=abcdef

我们可以在网页上看到:

abcdef

php获取多个数据:

<?php
$a = $_GET['id'];
$b = $_GET['page'];
if ($a == 1) {
    print 'OK' . ' ' . $b;
}
else {
    print 'Wrong';
}
?>

现在我们在浏览器上输入:

https://api.example.com/api?id=1&page=123

浏览器上得到的结果:

OK 123

我们利用PHP获取数据后,就可以操控PHP读取数据库或者执行python文件,然后返回结果

2.POST形式:

这里我们暂时先只介绍最简单的一种方法(以表单形式上传):

需要注意的是,使用POST发送数据,必须指定是哪个php文件,就算是index.php,我们也不能够在url中省略,我们假设这里的url为:https://api.example.com/api/index.php

php端(获取数据):

<?php
$a = $_POST['name'];
$b = $_POST['password'];
if ($a == 'abc' && $b == '123') {
    print 'Right';
}
else {
    print 'Wrong';
}
?>

python端(发送数据):

import requests
data = {
    'name': 'abc',
    'password': '123'
}
resp = requests.post('https://api.example.com/api/index.php', data=data)
print(resp.text)
#输出结果为 Right

如果在php设置输入错误就暂停10秒:

<?php
$a = $_POST['name'];
$b = $_POST['password'];
if ($a == 'abc' && $b == '123') {
    print 'Right';
}
else {
    sleep(10);
    print 'Wrong';
}
?>

注意:这种形式只能接收以表单形式传输的数据:Content-Type:application/x-www-form-urlencoded

这也是浏览器默认的传输方式,我们可以定义头部信息来确定这种传输方式:

header = {
    'Content-Type': 'application/x-www-form-urlencoded'
}