编写接口程序
[TOC]
> 实现PHP传统的方式连接数据库,提供API接口服务
## 实现的接口说明
| 接口名称| 参数 | 说明 |调用实例|
| ------ | ------ | ------ | ----- |
| getBookList| 无 | 获取图书列表 | api.php?action=getBookList
| getBookInfo| id | 获取图书详细信息|api.php?action=getBookInfo&id=1
## 实现代码
文件名:api.php
~~~
<?php
if (!function_exists('json')) {
//输出JSON格式的结果集
function json($code, $message, $data = null)
{
$result = array(
"errno" => $code,
"errmsg" => $message,
"data" => $data,
);
$json = json_encode($result);
header('Content-Type:text/json');
echo $json;
}
}
//数据库连接部分--开始
$servername = "localhost"; //数据库服务器名称
$username = "root"; // 连接数据库用户名
$password = "root"; // 连接数据库密码
$database = "quickstart"; // 数据库的名字
// 创建连接
$conn = new mysqli($servername, $username, $password, $database);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$action = isset($_GET['action']) ? $_GET['action'] : '';
if ($action == 'getBookList') {
$bookList = getBookList();
json(0, '', $bookList);
} else if ($action == 'getBookInfo') {
//从数据库中查询
$id = isset($_GET['id']) ? $_GET['id'] : '';
if ($id) {
$book = getBookInfo($id);
} else {
$book = null;
}
json(0, '', $book);
} else {
json(1000, '错误的请求');
}
$conn->close(); //关闭连接
/*--结束*/
/**
* 获取图书列表
*/
function getBookList()
{
global $conn;
$sql = "select * from think_book";
$result = $conn->query($sql);
$data = [];
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
return $data;
}
/**
* 获取图书信息
*/
function getBookInfo($id)
{
global $conn;
$sql = "select * from think_book where id=" . $id;
$result = $conn->query($sql);
$data = null;
if ($result->num_rows > 0) {
$data = $result->fetch_assoc();
}
return $data;
}
~~~
上述代码实现了获取图书列表和图书信息的接口,通过以下语法调用:
> 启动的端口因开发环境不同可能存在差异
~~~
http://localhost:3000/api.php?action=getBookList
~~~
~~~
http://localhost:3000/api.php?action=getBookInfo&id=1
~~~