這個問題小魯自己都覺得很蠢煩請大大門鞭小力點(;´゚ω゚`人)
是這樣的假設我已經建立好一組API :http://www.test.com/api/Products 可以取得商品的資料
然後我在同網域建立了一個網站並且要開啟商品頁面:http://www.test.com/Products.php
那....一般來說 伺服器要取得 Products.php 的資料的時候 會直接摳已經寫好的API拿資料嗎? (http://www.test.com/api/Products) 還是會另外從DB裡面撈出來呢?
小魯自己是覺得在從DB撈才對 但是不是很確定 求大大開釋 <(_ _)>
另外想問 在網站中通常什麼時候會用到API呢?
我舉一個自己的例子給您參考
依照你的困擾,抓取資料呈現在網頁上有三種方式
1.後端連線 DB
2.前端透過 api 撈取資料
3.後端透過 api 撈取資料
俺實務上傾向第三種 @@~
比如我們公司的網站架構
網站切分成很多小專案,每個專案一個資料夾
在架構時遇到一個需求,就是"共通資源"的引用
一般來說是 js、css、img 之類...
還有使用者權限的驗證,各個專案間的資料共用 (比如人事資料、刷卡資料等...)
這時候用傳統架構會很難管理 >"<~
用第二種架構又不切實際 (總不能連 css、js、img 等等共通資源都要開啟網頁時都再用 ajax 去載入吧...
所以我們採用了第三種 @@~
比如這個頁面會用到 jQuery、VUE、還有一些自己寫的 css
只要在後台的 PHP 先指定要引用的資原名稱
<?php
$assets = needAssetsLink('http://mywebsite/assets/link/', ["jQuery", "VUE", "myCss"]);
$logo = needAssetsLink('http://mywebsite/assets/link/', ["Logo"]);
?>
封裝好的函數就會使用 api 去取得資源的路徑
再透過已經定義好的框架
就會自動在頁面裡面加上資源的連結
<html>
<head>
<link rel="shortcut icon" href="<?php print($logo);?>">
</head>
<?php print($assets); ?> //這裡會輸出資源連結的 html
<body>
</body>
</html>
各個專案之間也是透過這樣共用資料
好處是如果以後資源要替換
不用一個一個專案去修改 @@~
更新 assets 專案的資源就可以
而且也可以根據請求的來源決定要回傳什麼資源
比如預設都會回傳 jQuery
因為每一個專案都會用到 XD
不過如果是資源需求大量計算的情況
是透過第一種方法去處理
比如兩、三個專案間的資料庫資料交互計算
用到大量或複雜的 SQL 語法時 (每 15 分鐘統計各個機台、產線生產資料之類...)
就不適合用 api 的方式一隻一隻呼叫
第二種方法則是使用在大量資料的呈現上
比如很長的統計資料 (要看過去五年的總生產資料,這時候會有樹狀圖,等使用者點開了分支再載入相關資料呈現...)
或者很多的圖片
那種需要隨著網頁滾動呈現資料的場景
或者資料量不適合一次載入網頁的場景
以上~供您參考~~
個人覺得Web API主要意圖是提供服務
使用Web API時機在於,會有多方來使用此服務就可考慮做成API
例如 你有A server,B server... 他們都會使用同一種功能或方法 我們可以把他寫成一個服務提供出來串接給 A server,B server... 使用.
哪一天我要更改服務邏輯(服務簽章不變) 我只要更改我Wab API程式邏輯 其他串接方都不用改變,就可享有修改邏輯的福利.
就像你很多重複的程式碼,可以考慮提取方法 達成程式碼乾淨簡潔 不要DRY