首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP Web 服務價值解析:從 HTML 介面到 XML/API 的架構演進

     編輯:PHP 綜合知識

核心觀點:Web 服務 = 應用程式的備用程式化介面

傳統 Web 應用:瀏覽器 ←HTML→ 伺服器
服務導向架構 (SOA):應用程式 ←XML/JSON→ 伺服器

傳統 Web 應用 vs SOA 架構圖

雙重介面優勢

  • 業務邏輯集中化: HTML 與 XML 介面共用同一中間層,資料一致性有保障
  • 用戶多樣化: 瀏覽器、行動 App、第三方整合、RSS 閱讀器、AJAX 前端
  • 技術棧解耦: 前端可獨立演進(Vue/React/原生 App),後端專注業務

實戰範例:文章管理系統

資料庫結構

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    author VARCHAR(255),
    description TEXT
);

INSERT INTO articles VALUES
(1, 'What I like about dogs', 'Megan', 'Everything I love about dogs...'),
(2, 'Making action movies', 'Jack', 'How to script HK action flicks...'),
(3, 'Super Paper Mario Tips', 'Lori', 'Win at Paper Mario...'),
(4, 'Why I bark', 'Oso', '');

HTML 介面 (傳統)

<?php
$articles = $db->query('SELECT * FROM articles');
foreach ($articles as $a) {
    echo "<h2>{$a['title']}</h2>";
    echo "<p>By {$a['author']}</p>";
    echo "<div>{$a['description']}</div>";
}
?>

XML 介面 (Web 服務)

<?php
header('Content-Type: application/xml; charset=utf-8');
$articles = $db->query('SELECT * FROM articles');
echo '<?xml version="1.0" encoding="utf-8"?>';
echo '<articles>';
foreach ($articles as $a) {
    echo '<article>';
    echo '<id>' . $a['id'] . '</id>';
    echo '<title><![CDATA[' . $a['title'] . ']]></title>';
    echo '<author>' . $a['author'] . '</author>';
    echo '<description><![CDATA[' . $a['description'] . ']]></description>';
    echo '</article>';
}
echo '</articles>';
?>

多重消費端展示

  • AJAX: fetch('/api/articles.xml').then(r=>r.text()).then(parseXML)
  • RSS: 相同資料輸出 RSS 2.0 格式,閱讀器訂閱
  • Flex/Flash: HTTPService 直接消費 XML
  • 行動 App: 原生 HTTP 客戶端解析 JSON/XML

實作建議

  1. 建立共用 ArticleService 類別,封裝所有資料存取邏輯
  2. 控制器僅負責:接收請求 → 呼叫 Service → 選擇 View/Serializer 輸出
  3. 使用路由區分格式:/articles (HTML)、/articles.xml、/articles.json
  4. 加入快取層(Redis/Memcached),減少資料庫壓力
  5. 實作 API 版本控制:/v1/articles、/v2/articles
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved