PHP 是 Server 端首選:跨平台、低資源、高效能、MySQL 黃金搭檔、免費開源。本文針對 App API 開發(僅資料輸出,無視圖層)詳細說明流程、範例、最佳實務與陷阱。
a=action&uid=123)。{data:..., info:..., code:...}。code 判斷成功/失敗,info 可作彈窗提示。<?php
$output = array();
$a = isset($_GET['a']) ? $_GET['a'] : '';
$uid = isset($_GET['uid']) ? intval($_GET['uid']) : 0;
if (empty($a)) {
exit(json_encode(array('data'=>NULL, 'info'=>'缺少參數', 'code'=>-201)));
}
if ($a == 'get_users') {
if ($uid == 0) {
exit(json_encode(array('data'=>NULL, 'info'=>'uid 不能為空', 'code'=>-401)));
}
// 模擬資料庫
$mockDb = array(
10001 => array('uid'=>10001, 'nickname'=>'Shine X', 'level'=>19),
10002 => array('uid'=>10002, 'nickname'=>'elva', 'level'=>112),
);
if (!isset($mockDb[$uid])) {
exit(json_encode(array('data'=>NULL, 'info'=>'用戶不存在', 'code'=>-402)));
}
$output = array(
'data' => array('userInfo'=>$mockDb[$uid], 'isLogin'=>true, 'unread'=>4),
'info' => '歡迎回來',
'code' => 200
);
exit(json_encode($output));
}
// 其它 action...
?>
| 項目 | 建議 | 原因 |
|---|---|---|
| 輸出格式 | 統一 JSON | 跨平台解析最廣、體積小、逐漸取代 XML |
| 介面驗證 | 簽名/Token/加密 | 防刷單、防惡意調用、商業應用必備 |
| 錯誤輸出 | error_reporting(0),純 JSON | 任何多餘輸出導致 App 解析失敗 Crash |
| 框架選擇 | 建議原生 PHP 或微型框架 | 大型框架載入過多檔案,延遲高、風險大 |
| 回應速度 | 極致優化 | 手機網路不穩,用戶容忍度極低 |
作者為 ThinkPHP 開發者,仍建議 API 使用原生 PHP:
「框架為 Web 誕生,API 只需 M 和 C,載入完整框架如夏天穿冬裝。若框架拋出例外或輸出 HTML 錯誤頁,App 直接 Crash。」