編寫接口程序
[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
~~~