EDS API Query Flows /bin/public/eds
K
EDS Query Flows 查詢流程 · zh-Hant Last updated 2026-06-30

EDS API 查詢流程文件

本文件描述每個 EDS 後端 API 的查詢流程,包括入口引數、CF 關係、資料組裝邏輯和真實資料示例。

API 群組
7
Endpoints
30+
Table Types
6
Block APIs
8
目錄

1. 通用回應格式 #

所有 EDS API 共用統一的回應信封(基類 Responsesuccess + status + timestamp)。

成功 (SuccessResponse):

json · success
{ "success": true, "status": 200, "timestamp": "...", "message": "...", "data": { } }
data 為各 API 的實際內容;列表型 API 的 data 為陣列。

失敗 (ErrorResponse):

json · error
{ "success": false, "status": 400, "timestamp": "...", "error": { "code": "err_invalid_param", "message": "..." } }

錯誤碼對照 (EdsErrorCodes):

HTTPcode觸發場景
400err_bad_request缺少必填參數(如三個來源參數都沒傳)
400err_invalid_param參數非法(互斥衝突、depth 超範圍、source_type 非法、spec 數超 50 等)
401err_unauthorizedAccess token 無效或過期
403err_forbidden無權存取
404err_not_found資源不存在(如未知 evb_id / news id / video id)
500err_internal_error內部錯誤

2. Product Table API #

Endpoint: GET /bin/public/eds/product-table

統一路由 Servlet,根據 table_resource_type 分發到不同 Handler。

公共引數

引數必填說明
table_resource_typeREQ表格型別標識
product_spec_id3-OFSpec ID,單個或逗號分隔(最多 50 個)
product_group_id3-OF產品組 ID,會展開為該組下所有 Spec
evb_id3-OF評估板 ID,會解析為該 EVB 關聯的 Spec
langOPT語言 (en/zh_tw/zh_cn),預設 en
product_spec_id / product_group_id / evb_id三選一且互斥:傳 2 個以上 → 400;一個都不傳 → 400。

路由邏輯

  1. 解析來源引數 → 得到 specIds(最多 50 個)
    • evb_id → 解析 EVB(找不到 → 404),取 evb.resolvedProductSpecs 的 Spec ID;同時保留 evb 物件
    • product_group_id → 查出該 Group 下所有 ProductSpec ID(Group 找不到或無 Spec → 400)
    • product_spec_id → 解析逗號分隔列表
  2. 分發到 Handler:
    • evb_id 進入(evb != null)→ 呼叫 handler.handleEvb(evb, specIds)
    • 單個 Spec → 呼叫 handler.handle()
    • 多個 Spec → 呼叫 handler.handleMultiple()
三個入口最終都收斂到 specIds,差別在於 evb_id 會走 handleEvb(),讓部分 Handler 做 EVB 專屬處理(詳見下方「入口引數調用鏈路」)。

2.1 Type × 參數支持矩陣 #

重要:每個 table_resource_type 接受的引數與資料組裝演算法都不同。公共引數(入口三選一 + lang)對所有 Type 一致,但各 Type 另有自己的額外引數與入口行為差異。先看這張矩陣,再讀對應子節。

兩種引數族(別混用「互斥」一詞):

  1. 入口引數product_spec_id / product_group_id / evb_id)— 三選一互斥,恰好提供一個,否則 400。決定「查哪些 Spec」。
  2. 子表篩選引數type,僅 design-tools / technical-documentation)— 逗號可多值的「包含篩選」,非互斥;不傳 = 回全部子表;未知值靜默忽略(不報錯)。決定「回哪些子表」。

此外 parameter 有一個 列推導引數 product_category_id(選填)。

table_resource_type額外引數product_spec_id 入口product_group_id 入口evb_id 入口
parameterproduct_category_id(選填)PRODUCT_NUMBER 純文字PRODUCT_NUMBER 連結到各 Spec 頁override:同 group 入口 → PRODUCT_NUMBER 連結
package-size-pins-size✓ 用關聯 Spec✓ 展開為組內全部 Spec預設:用 EVB 關聯 Spec
ordering-products✓ 用關聯 Spec✓ 展開為組內全部 Spec預設:用 EVB 關聯 Spec
evb✓ Spec 關聯的全部 EVB✓ 組內全部 Spec 的 EVBoverride:只顯示所請求的這塊 EVB
design-toolstype=packages | downloads✓ 用關聯 Spec✓ 展開為組內全部 Spec預設:用 EVB 關聯 Spec
technical-documentationtype=datasheet | application_note | selection_guide | design_support_kit | evaluation_boards | product_introduction✓ 用關聯 Spec(6 類子表)✓ 展開為組內全部 Spec(6 類子表)override:只回 design_support_kit / evaluation_boards / product_introduction 3 類子表
怎麼讀這張表: 「✓ / 預設」= 該入口無專屬處理,等同於把解析出的 Spec 當一組來查(演算法見各子節);粗體 override = 該 Type 對此入口有專屬輸出,務必看對應子節的「入口差異」說明。

2.2 入口引數調用鏈路(group_id / evb_id) #

三種來源引數的解析過程不同,但都會收斂為一組 specIds 再分發。以下說明 product_group_idevb_id 兩條較複雜的鏈路。

product_group_id 鏈路

CF 關係:

ProductGroup ──1:N──→ ProductSpec (Spec 以 productGroup UUID 反向關聯)

查詢流程:

  1. ProductSpecService.findAllByProductGroupId(groupId)ProductGroupRepository.findById(groupId)(Group 不存在 → 回傳空 → 400 No specs found for group
  2. findAllByProductGroup:用 ProductSpecSearchFilter.byProductGroup(group.uuid) 查出該組所有 ProductSpec
  3. 取出各 Spec 的 ID 組成 specIds,再按單個 / 多個分發到 handle() / handleMultiple()
簡單說:group_id 只是「展開為該組的所有 Spec」,展開後與直接傳 product_spec_id 多個值的行為一致。

請求示例:

request
GET /bin/public/eds/product-table?table_resource_type=ordering-products&product_group_id=<groupId>&lang=en

evb_id 鏈路

CF 關係:

EvaluationBoard ──N:M──→ ProductSpec (EVB 的 resolvedProductSpecs)

查詢流程:

  1. EvaluationBoardService.findByIdWithResolvedSpecs(evbId) 解析 EVB(找不到 → 404 Evaluation board not found
  2. evb.getResolvedProductSpecs() 取出 Spec ID 組成 specIds(可能為空)
  3. evb != null,呼叫 handler.handleEvb(evb, specIds) —— 各 Handler 行為不同:
HandlerhandleEvb 行為
預設(ordering-products、design-tools、package-size-pins-size 等)忽略 EVB 上下文,用關聯 specIds 委派給 handle() / handleMultiple(),結果等同於用這些 Spec 進入
parameterParameterTableHandler override)與 Product Group 入口一致:PRODUCT_NUMBER 渲染為連結(type=link)指向各自 Spec 頁,且跨 Spec 依產品號排序
evbEvbTableHandler override)只顯示所請求的這塊 EVB 本身,不展開關聯 Spec 的其他兄弟 EVB
technical-documentationTechnicalDocumentationTableHandler override)只回傳 3 個子表:design_support_kitevaluation_boardsproduct_introduction,可用 type 引數在其中收窄
簡單說:evb_id 先解析 EVB → 拿到關聯 Spec;多數表把它當成「一組 Spec」處理,parameterevbtechnical-documentation 三張表則針對 EVB 做了專屬輸出。

請求示例:

request · 3 examples
# EVB 表:只顯示這塊 EVB
GET /bin/public/eds/product-table?table_resource_type=evb&evb_id=<evbId>&lang=en

# 技術文件:EVB 入口只回傳 3 個子表
GET /bin/public/eds/product-table?table_resource_type=technical-documentation&evb_id=<evbId>&lang=en

# 參數表:EVB 入口 = 用關聯 Spec 進入,PRODUCT_NUMBER 渲染為可跳轉連結(同 Product Group)
GET /bin/public/eds/product-table?table_resource_type=parameter&evb_id=<evbId>&lang=en

2.3 Parameter Table #

table_resource_type=parameter

額外引數: product_category_id(可選,列推導用)

入口差異(Parameter 表獨有): 本表會根據「是否經 product_group_id evb_id 進入」改變輸出 —— 這兩種入口會把 PRODUCT_NUMBER 列變成連結;只有單純 product_spec_id 入口維持純文字。

CF 關係

ProductCategory ──1:N──→ ProductParameter (定義表格的列) ProductSpec ──1:N──→ ProductFamily (定義表格的行) └── productCategories: UUID[] (Spec 所屬的葉子分類) └── specificParams: JSON {"引數名": 值, ...} (在 Family 上)

product_category_id 推導邏輯

場景處理
傳了葉子 category_id直接用
傳了中間層 category_id從 Spec 的 categories 中找到該 category 的後代葉子,用葉子
傳了無關 category_id返回空表
沒傳 + 單 Spec取 Spec 的 productCategories[0]
沒傳 + 多 Spec(有交集)所有 Spec 的 categories 取交集,用第一個
沒傳 + 多 Spec(無交集)返回空表

查詢流程

  1. 推導 category_id:按上述邏輯確定有效的葉子 category_id
  2. category_id 查所有 ProductParameter → 決定表格有哪些(引數名、型別、單位)
  3. product_spec_id 查所有 ProductFamily → 決定表格有哪些(每個 Family = 一個產品型號)
  4. 解析每個 Family 的 specificParams JSON,對映到對應引數列
  5. 補上固定列(PRODUCT_NUMBER、DATASHEET、STATUS),去掉空列
  6. 計算高亮標記(值不同的列標記為 highlight),重新排序列:固定列 → 高亮列 → 普通列
  7. 根據 Spec 的 updateDay 判斷 is_new(一年內為 true)

Product Group / EVB 入口的 PRODUCT_NUMBER 連結

PRODUCT_NUMBER 列預設是純文字(Family 名稱)。當請求經 product_group_idevb_id 進入時,該列才會變成指向各自 Spec 頁面的文字連結。兩條入口觸發連結的機制略有不同:

  1. group 入口isGroupEntry(request) = 帶 product_group_id 即為 true(後端以「請求是否帶 product_group_id 引數」判定,不看解析後的 Spec 數量 —— 一個只含單一 Spec 的 Group 仍走 group 入口)。handle() / handleMultiple() 據此開啟連結。
  2. evb 入口handleEvb() 直接以 linkProductNumber=true 委派,視為與 group 入口一致的跨 Spec 聚合檢視,永遠開啟連結。
  3. 連結組裝buildSpecPagePathMap 一次批次查詢解析所有 specId → Spec 頁面 contentPath(無對應頁面的 Spec 不出現在 map 中,該行退回純文字)。
  4. 若同時帶 product_category_id,會把它作為 query 參數拼到目標頁 URL(?product_category_id=...),讓落地的 Spec 頁保留瀏覽分類上下文。
換言之:product_spec_id 入口 → PRODUCT_NUMBER 純文字;product_group_id / evb_id 入口 → PRODUCT_NUMBER 連結(指向 Spec 頁,帶分類上下文)。
簡單說:Category 決定列,Spec 決定行,Family 的 specificParams 提供單元格資料。Category 可以不傳,後端自動從 Spec 推導。

請求示例

request · 2 examples
# 單 Spec + 顯式 category_id
GET /bin/public/eds/product-table?table_resource_type=parameter&product_spec_id=RT2101A&product_category_id=73C2EB1D-41CC-4D10-A6FF-F3959913DA7C&lang=en

# 多 Spec,不傳 category_id(自動推導)
GET /bin/public/eds/product-table?table_resource_type=parameter&product_spec_id=RT2101A,RT2101B&lang=en

資料流拆解

product_category_id = "73C2EB1D-41CC-4D10-A6FF-F3959913DA7C" (即 "Vin < 8V") → 查出 14 個 ProductParameter: VIN_MIN (V, NUMERIC, RANGE_VALUE_SLIDER) VIN_MAX (V, NUMERIC, RANGE_VALUE_SLIDER) VOUT_MIN (V), VOUT_MAX (V), ADJUSTABLE (STRING, CHECKBOX) QUIESCENT_TYP (mA), CURRENT_LIMIT (A), SWITCH_FREQ (kHz) FREQ_MIN (kHz), FREQ_MAX (kHz), RDS_HIGH (mΩ), IOUT_MAX (A) OTHERS_FEATURES (STRING, CHECKBOX), PACKAGE_TYPE (STRING, CHECKBOX) product_spec_id = "RT2101A" → 查出 2 個 ProductFamily: RT2101A, RT2101B RT2101A.specificParams = { "VIN_MIN": "2.95", "VIN_MAX": "6", "IOUT_MAX": "3", "VOUT_MIN": "0.827", "VOUT_MAX": "3.6", "ADJUSTABLE": "Resistor", "QUIESCENT_TYP": "0.55", "CURRENT_LIMIT": "7", "SWITCH_FREQ": "1000", "FREQ_MIN": "700", "FREQ_MAX": "2000", "RDS_HIGH": "45", "PACKAGE_TYPE": "WQFN3x3-16", ... } RT2101B.specificParams = { "VIN_MIN": "2.95", "VIN_MAX": "6", "IOUT_MAX": "2", ← 與 A 不同 "CURRENT_LIMIT": "3.4", ... ← 與 A 不同 } 最終表格: 列: PRODUCT_NUMBER | DATASHEET | STATUS | *IOUT_MAX* | *CURRENT_LIMIT* | VIN_MIN | VIN_MAX | ... 行1: RT2101A | PDF連結 | Active | 3 | 7 | 2.95 | 6 | ... 行2: RT2101B | PDF連結 | Active | 2 | 3.4 | 2.95 | 6 | ... (* 標記 = highlight,因為值不同)

2.4 Package Size Pins Size Table #

table_resource_type=package-size-pins-size

本表引數: 無額外引數。三個入口(spec / group / evb)皆走預設行為 —— 把解析出的 Spec 當一組查 Family,無 EVB 專屬輸出。

CF 關係

ProductSpec ──1:N──→ ProductFamily ──1:N──→ Product └── package (UUID) ──→ Package └── packageCategory ──→ PackageCategory

查詢流程

  1. product_spec_id 查所有 ProductFamily
  2. 從每個 Family 查所有 Product,解析其 package 引用
  3. 批次載入 Package 及其 PackageCategory
  4. 按 Package 分組,每個 Package 行包含:
    • PACKAGE_TYPE(PackageCategory 名稱)
    • PACKAGE_NAME(Package 名稱)
    • PINS(引腳數)
    • Outline Dimension PDF、Footprint 檔案、Package Image、3D Model
  5. 掃描 DAM 資料夾 (/content/dam/richtek-eds/resources/packages/{packageId}/) 獲取關聯檔案
簡單說:從 Spec 往下找到 Product,解析 Package 引用,按封裝型別分組展示。

請求示例

request
GET /bin/public/eds/product-table?table_resource_type=package-size-pins-size&product_spec_id=RT2101A&lang=en

資料流拆解

RT2101A (Spec) → RT2101A (Family) → RT2101AGQW (Product) → package: "WQFN3x3-16" → RT2101B (Family) → RT2101BGQW (Product) → package: "WQFN3x3-16" Package "WQFN3x3-16" → PackageCategory "QFN" → 掃描 DAM: /content/dam/richtek-eds/resources/packages/wqfn3x3-16/ → outline.pdf, footprint.pdf, image.jpg, 3d-model.stp 最終表格 (按 Package 合併): PACKAGE_TYPE | PACKAGE_NAME | PINS | OUTLINE_DIMENSION | FOOTPRINT | ... QFN | WQFN3x3-16 | 16 | outline.pdf | fp.pdf | ...

2.5 Ordering Products Table #

table_resource_type=ordering-products

別名: table_resource_type=products 會被後端對映到 ordering-products(向後相容)。

本表引數: 無額外引數。三個入口(spec / group / evb)皆走預設行為,無 EVB 專屬輸出。

CF 關係

ProductSpec ──1:N──→ ProductFamily ──1:N──→ Product ├── package ──→ Package ──→ PackageCategory ├── productStock ──→ ProductStock (庫存) └── distributors ──→ Distributor[] (經銷商)

查詢流程

  1. product_spec_id 查所有 ProductFamily
  2. 從每個 Family 查所有 Product
  3. 批次解析每個 Product 的引用:Package、ProductStock、Distributor
  4. 組裝每行資料:
    • PRODUCT_NUMBER(Product 名稱)
    • PACKAGE_TYPE(PackageCategory 名稱)
    • PACKAGE_NAME(Package 名稱)
    • STATUS(Family 狀態對映)
    • MOQ(最小訂購量)
    • STOCK(庫存狀態)
    • DISTRIBUTOR(經銷商連結列表)
簡單說:從 Spec → Family → Product,拼裝封裝、庫存、經銷商資訊。

請求示例

request
GET /bin/public/eds/product-table?table_resource_type=ordering-products&product_spec_id=RT2101A&lang=en

資料流拆解

RT2101A (Spec) → RT2101A (Family, status=Active) → RT2101AGQW (Product, moq=1500, package=WQFN3x3-16) → Stock: Mouser "In Stock", Digi-Key "In Stock" → Distributors: [ {name: "Mouser Electronics", url: "https://www.mouser.com/ProductDetail/Richtek/RT2101AGQW"}, {name: "Digi-Key Electronics", url: "https://www.digikey.com/product-detail/RT2101AGQW"} ] → RT2101B (Family, status=Active) → RT2101BGQW (Product, moq=1500, package=WQFN3x3-16) → Stock: Mouser "Low Stock" 最終表格: PRODUCT_NUMBER | PACKAGE_TYPE | PACKAGE_NAME | STATUS | MOQ | STOCK | DISTRIBUTORS RT2101AGQW | QFN | WQFN3x3-16 | Active | 1500 | In Stock | [Mouser, Digi-Key] RT2101BGQW | QFN | WQFN3x3-16 | Active | 1500 | Low Stock| [Mouser]

2.6 EVB Table #

table_resource_type=evb

evb_id 入口(override):evb_id 進入時走 handleEvb()只顯示所請求的這塊 EVB 本身,不會展開關聯 Spec 的其他兄弟 EVB;經 product_spec_id / product_group_id 進入則顯示 Spec 關聯的所有 EVB。詳見「入口引數調用鏈路」。

本表引數: 無額外引數(差異全在入口:見上方 override 說明)。

CF 關係

ProductSpec ──1:N──→ EvaluationBoard (EVB) ├── evbStock ──→ EvbStock (庫存) └── distributors ──→ Distributor[] (經銷商)

查詢流程

  1. product_spec_id 查所有 EvaluationBoard
  2. 批次載入 EvbStockDistributor
  3. 組裝每行資料:
    • EVB_NAME(評估板名稱)
    • STOCK(庫存狀態)
    • DISTRIBUTOR(經銷商連結列表)
簡單說:直接查 Spec 關聯的評估板,拼裝庫存和經銷商。

請求示例

request
GET /bin/public/eds/product-table?table_resource_type=evb&product_spec_id=RT2101A&lang=en

資料流拆解

RT2101A (Spec) → EVB: "RT2101A-EVB" (EvaluationBoard) → EvbStock: Mouser "In Stock" → Distributors: [{name: "Mouser Electronics", url: "https://..."}] 最終表格: EVB_NAME | STOCK | DISTRIBUTORS RT2101A-EVB | In Stock | [Mouser]

2.7 Design Tools Table #

table_resource_type=design-tools

額外引數: type(可選,子表篩選)

引數必填說明
typeOPT子表篩選,值為 packages / downloads可逗號多值type=packages,downloads);不傳 = 返回兩個表;未知值靜默忽略(不報錯)。非互斥——這是「包含篩選」,不是入口參數。
入口行為: 三個入口(spec / group / evb)皆走預設行為,無 EVB 專屬輸出 —— evb_id 進入 = 用 EVB 關聯 Spec 查 packages / downloads。

CF 關係

ProductSpec ──1:N──→ ProductFamily ──1:N──→ Product ──→ Package ProductSpec ──via TechdocLinker──→ DesignTool 下載連結

查詢流程

packages 表:

  1. 從 Spec → Family → Product → Package,與 Package Size Pins Size 相同
  2. 返回封裝相關檔案(Outline Dimension、Footprint、3D Model)

downloads 表:

  1. 通過 TechdocLinker 查詢該 Spec 關聯的設計工具下載連結
  2. 返回工具名稱和下載 URL
簡單說:packages 表複用封裝查詢邏輯,downloads 表通過 TechdocLinker 獲取工具連結。

請求示例

request · 2 examples
GET /bin/public/eds/product-table?table_resource_type=design-tools&product_spec_id=RT2101A&lang=en
GET /bin/public/eds/product-table?table_resource_type=design-tools&product_spec_id=RT2101A&type=downloads&lang=en

2.8 Technical Documentation Table #

table_resource_type=technical-documentation

evb_id 入口(override):evb_id 進入時走 handleEvb()只回傳 3 個子表design_support_kitevaluation_boardsproduct_introduction),type 引數在這 3 者內收窄;經 product_spec_id / product_group_id 進入則回傳下方完整 6 類子表。詳見「入口引數調用鏈路」。

額外引數: type(可選,子表篩選)

引數必填說明
typeOPT子表篩選,值為 datasheet / application_note / selection_guide / design_support_kit / evaluation_boards / product_introduction可逗號多值;不傳 = 返回全部子表;未知值靜默忽略。非互斥——「包含篩選」,不是入口參數。經 evb_id 入口時,可選值收窄為 design_support_kit / evaluation_boards / product_introduction 3 者。

CF 關係

ProductSpec ──1:N──→ ProductFamily (獲取 Datasheet) ProductSpec ──via TechdocLinker──→ AppNote / SelectionGuide / DesignSupportKit / ProductIntro ProductSpec ──1:N──→ EvaluationBoard

查詢流程

按文件類別返回多個子表,每個子表有獨立的列和資料:

  1. Datasheet — 查 ProductFamily,提取 Datasheet PDF 連結
  2. Application Note — 通過 TechdocLinker 查關聯的應用筆記
  3. Selection Guide — 通過 TechdocLinker 查選型指南
  4. Design Support Kit — 通過 TechdocLinker 查設計支援包
  5. Evaluation Boards — 查 EvaluationBoard CF 列表
  6. Product Introduction — 通過 TechdocLinker 查產品介紹
簡單說:把與該 Spec 相關的所有技術文件按類別分組返回,資料來自 TechdocLinker 和直接 CF 查詢。

請求示例

request · 2 examples
GET /bin/public/eds/product-table?table_resource_type=technical-documentation&product_spec_id=RT5760A&lang=en
GET /bin/public/eds/product-table?table_resource_type=technical-documentation&product_spec_id=RT5760A&type=datasheet&lang=en

資料流拆解 (datasheet 子表)

RT5760A (Spec) → RT5760AHGH (Family) → Datasheet: /content/dam/richtek/data/en/resources/product-specifications/rt57/rt5760a/product-data-sheets/pdf/DS5760A-05.pdf 最終表格 (datasheet): PRODUCT_NUMBER | DATASHEET RT5760AHGH | {url: ".../DS5760A-05.pdf", text: "DS5760A-05"}

3. Parametric Search API #

Endpoint: GET /bin/public/eds/parametric-search

引數必填說明
product_category_idREQ產品類別 ID
langOPT語言,預設 en
pageOPT頁碼(1-based),預設 1
page_sizeOPT每頁條數,預設 20
keywordOPT產品型號關鍵詞(子字串匹配)
sort_byOPT排序列名
sort_orderOPTasc / desc,預設 asc
filter.*OPT篩選條件(如 filter.STATUS.values=Active

CF 關係

ProductCategory (root + 所有子類別) ├── 1:N ── ProductParameter (從 root Category 載入,定義列) └── N:M ── ProductSpec ──1:N──→ ProductFamily (行資料)

查詢流程

  1. 載入給定 Category 及其所有子類別(樹展開)
  2. 從給定 Category 載入 ProductParameter(列定義)
  3. 從所有類別收集關聯的 ProductSpec UUID
  4. 一次批次查詢所有 Spec 的 ProductFamily
  5. 預解析所有 Family 的 specificParams JSON 並快取
  6. 構建行資料 → 應用篩選條件 → 關鍵詞搜尋 → 排序 → 分頁返回
簡單說:展開 Category 樹 → 收集所有 Spec → 批次載入 Family → 記憶體中篩選/排序/分頁。

請求示例

request · 3 examples
# 基礎查詢: Switching Regulators > Step-Down (Buck) > Converters > Vin < 8V
GET /bin/public/eds/parametric-search?product_category_id=73C2EB1D-41CC-4D10-A6FF-F3959913DA7C&lang=en&page=1&page_size=20

# 帶篩選: 只看 Active 且 VIN_MIN 在 2.5~5V 範圍
GET /bin/public/eds/parametric-search?product_category_id=73C2EB1D-41CC-4D10-A6FF-F3959913DA7C&filter.STATUS.values=Active&filter.VIN_MIN.min=2.5&filter.VIN_MIN.max=5&lang=en

# 帶關鍵詞搜尋 + 排序
GET /bin/public/eds/parametric-search?product_category_id=73C2EB1D-41CC-4D10-A6FF-F3959913DA7C&keyword=RT2101&sort_by=IOUT_MAX&sort_order=desc&lang=en

資料流拆解 (以 "Vin < 8V" 類別為例)

product_category_id = "73C2EB1D-41CC-4D10-A6FF-F3959913DA7C" (Vin < 8V) 該類別無子類別 → 只查自身 步驟1: 載入 ProductParameter (14 個引數列): VIN_MIN(V) | VIN_MAX(V) | VOUT_MIN(V) | VOUT_MAX(V) | ADJUSTABLE QUIESCENT_TYP(mA) | CURRENT_LIMIT(A) | SWITCH_FREQ(kHz) | ... 步驟2: 收集該類別關聯的所有 ProductSpec UUID → 假設 50 個 Spec 步驟3: 一次批次查詢所有 Family (可能 200+ 個) 步驟4: 記憶體中組裝行資料 (STATUS 固定為最後一列,另附隱藏欄位 is_new): PRODUCT_NUMBER | VIN_MIN | VIN_MAX | IOUT_MAX | ADJUSTABLE | ... | STATUS | (is_new) RT2101A | 2.95 | 6 | 3 | Resistor | ... | Active | true RT2101B | 2.95 | 6 | 2 | Resistor | ... | Active | false RT5760AHGH | 2.5 | 5.5 | 1 | Resistor | ... | Active | false ... 步驟5: 應用 filter → keyword → sort → 分頁(page=1, size=20) 返回: columns: [...14 個引數列 + 固定列...] products: [...20 條資料...] pagination: { page: 1, page_size: 20, total_items: 127, total_pages: 7 }
columns 動態參數列:除 name / field_name / type / unit 外,動態參數列另透傳原生 selection_typeRANGE_VALUE_SLIDER / CHECKBOX …)與 data_typeNUMERIC / STRING / RANGE),供前端決定篩選控件;固定列與 product-table 純展示表不含此兩欄位。Cross Reference Search(4.1)同此規則,並額外以 hidden 標記預設隱藏列(列與資料照常返回,由前端隱藏)。

3.2 Parametric Search Filters #

Endpoint: GET /bin/public/eds/parametric-search/filters

引數必填說明
product_category_idREQ產品類別 ID
langOPT語言,預設 en

查詢流程

  1. 與 Parametric Search 共享 loadParametricData() 載入邏輯
  2. 構建 STATUS 篩選器(Active / NRND / LTB / EOL)
  3. 構建動態引數篩選器:
    • RANGE_VALUE_SLIDER → 從快取值中計算 min/max
    • CHECKBOX → 收集所有不同的字串值
簡單說:載入同樣的資料,但只返回可用的篩選條件定義,不返回表格資料。

請求示例

request
GET /bin/public/eds/parametric-search/filters?product_category_id=73C2EB1D-41CC-4D10-A6FF-F3959913DA7C&lang=en

返回示例

json · response
{
  "filters": [
    { "name": "STATUS", "type": "CHECKBOX", "options": ["Active", "NRND", "LTB", "EOL"] },
    { "name": "VIN_MIN", "type": "RANGE_VALUE_SLIDER", "unit": "V", "min": 1.5, "max": 7.5 },
    { "name": "IOUT_MAX", "type": "RANGE_VALUE_SLIDER", "unit": "A", "min": 0.5, "max": 12 },
    { "name": "ADJUSTABLE", "type": "CHECKBOX", "options": ["Resistor", "Fixed"] },
    { "name": "PACKAGE_TYPE", "type": "CHECKBOX", "options": ["WQFN3x3-16", "WDFN2x2-6", "SOP-8"] }
  ]
}

3.3 Compare Products #

Endpoint: GET /bin/public/eds/compare-products

引數必填說明
pn4-OF要比較的 Product Number,可重複(?pn=A&pn=B)或逗號分隔。無數量上限
product_spec_id4-OF產品規格業務 ID(可逗號多值)→ 比較這些 Spec 下全部 Active Family
product_group_id4-OF產品組業務 ID → 解析為該組全部 Spec → 比較其下全部 Active Family
evb_id4-OF評估板業務 ID → 比較其關聯 Spec 下全部 Active Family(不存在 → 404)
product_category_idOPT對任意入口選填:決定參數列集合與連結分類上下文;留空則列取相關產品所屬全部分類的參數聯集。不決定行
langOPT語言,預設 en
pn / product_spec_id / product_group_id / evb_id 四選一互斥,恰好提供一個。

CF 關係: 與 Parametric Search 相同。

查詢流程

依「入口來源」分資料載入路徑,之後合流:

A. pn + product_category_id(共用 loadParametricData):

  1. 與 Parametric Search 步驟 1~5 完全相同(展開 Category 樹 → 收集 Spec → 批次載入 Family(僅 Active)→ 預解析 specificParams

B. pnproduct_category_idloadParametricDataByProductNumbers,全局解析):

  1. ProductFamilySearchFilter.byNames(pn) 全局查 Family(不限分類子樹),僅保留 Active
  2. 解析各 Family 的 Spec,收集每個 Spec 直接關聯的葉子分類 UUID
  3. 沿祖先鏈展開(葉子 + 祖先),union(聯集)所有層級的參數作為列(與 Cross Reference 共用 CategoryHierarchyHelper
  4. 預解析 specificParams

C. product_spec_id / product_group_id / evb_idcompareBySpecs):

  1. 將來源解析為一組 Spec UUID(spec → 自身;group → findAllByProductGroupId;evb → EvaluationBoard.getProductSpecs()),用 ProductFamilySearchFilter.byProductSpecs 查 Family,僅保留 Active,依 Product Number 升序
  2. 列:帶 product_category_id 取該分類參數,否則取這些 Family 所屬分類的聯集(同 B 的 deriveUnionParameters);無 not_found

合流後:

  • A / B:在記憶體中依 pn 挑選對應 Family(保持請求順序、不區分大小寫、重複合併),找不到的 pn 收集至 not_found
  • 全部入口:buildColumns(含 STATUS;compare 顯示 hidden=true 參數,列不標 hidden flag,與 parametric-search 不同)→ 對選中子集解析 PRODUCT_NUMBER 連結(3 個批次查詢)→ 逐筆組裝行
簡單說:四種入口(pn / spec / group / evb 四選一)決定要比較哪些 Family,product_category_id 選填決定列與連結上下文;後端永遠回傳全量,Differences 由前端自算。無行數上限,hidden 參數照常顯示。

請求示例

request · 5 examples
# pn + 分類上下文(從參數搜尋頁勾選比較)
GET /bin/public/eds/compare-products?product_category_id=242909&pn=RT2101A&pn=RT2101B&lang=en
# pn 無分類(從 Cross Reference 跳轉,按 pn 全局解析)
GET /bin/public/eds/compare-products?pn=RT2101A&pn=RT2101B&lang=en
# spec / group / evb 入口(可再加 &product_category_id=...)
GET /bin/public/eds/compare-products?product_spec_id=RT9101,RT9119&lang=en
GET /bin/public/eds/compare-products?product_group_id=RT9101&lang=en
GET /bin/public/eds/compare-products?evb_id=EVB_RT6166DP-A&lang=en

返回: 與 Parametric Search 同契約(table_name="compare-products" / columns / products),無 paginationnot_foundpn 入口可能出現(全部解析成功時省略)。前端比較頁自行轉置渲染:第一行 = 各 PRODUCT_NUMBER.name + DATASHEET,左側標籤欄 = columns[].field_name (+unit)

4. Cross Reference Search API #

Endpoint: GET /bin/public/eds/cross-reference-search

引數必填說明
keywordREQ搜尋關鍵詞(匹配 CR id 或 company_name,OR 邏輯)
langOPT語言,預設 en
pageOPT頁碼,預設 1
page_sizeOPT每頁條數(預設 20,最大 200)
sort_byOPT排序列名
sort_orderOPTasc / desc
filtersOPTURL 編碼的 JSON 篩選條件

CF 關係

CrossReference ──N:M──→ ProductSpec ──N:M──→ ProductCategory(葉子) ──parent──→ 祖先 Category ──1:N──→ ProductParameter └──1:N──→ ProductFamily (行資料)
Spec 連的是葉子 Category,但 ProductParameter 掛在上層(祖先) Category 上,所以必須沿 parent 向上展開後再收集引數。

查詢流程

  1. 用 keyword OR 搜尋 CrossReference(匹配 idcompany_name,LIKE 轉義)
  2. 從匹配的 CrossReference 解析出關聯的 ProductSpec
  3. 構建 specUuid → typeOfMatch 對映(去重)
  4. 收集每個 Spec 的葉子類別 → 沿 parent 向上展開到所有祖先類別 → 計算引數並集(按 name 去重保留第一個、按 order 排序)
  5. 批次載入所有 ProductFamily
  6. 預解析 specificParams JSON
  7. 為每個 Family 根據 typeOfMatch 集合展開行(一個 Family 可能對應多行)
  8. 固定列順序為 PRODUCT_NUMBER、DATASHEET、TYPE_OF_MATCH(TYPE_OF_MATCH 為第 3 列),其後接動態引數列
  9. 應用篩選 → 排序 → 分頁
注意:有哪些由「葉子+祖先類別的引數並集」決定,與 Family 是否有值無關(引數有定義即出列,無值則該格留空);Family 的 specificParams 只用於填值與計算 filter 選項/範圍。
簡單說:先搜 CrossReference,找到關聯的 Spec,收集葉子類別並向上展開到祖先,取引數並集作為列,展開 Family 行並附加匹配型別列。

請求示例

request · 2 examples
# 搜尋競品型號
GET /bin/public/eds/cross-reference-search?keyword=TPS51125&lang=en&page=1&page_size=20

# 搜尋競品公司
GET /bin/public/eds/cross-reference-search?keyword=Texas&lang=en

資料流拆解

keyword = "TPS51125" → OR 搜尋 CrossReference: id LIKE "%TPS51125%" OR company_name LIKE "%TPS51125%" → 匹配到 3 個 CrossReference: CR1: {id: "TPS51125", company: "Texas Instruments", typeOfMatch: "Pin Compatible", spec: RT5760A} CR2: {id: "TPS51125A", company: "Texas Instruments", typeOfMatch: "Similar Function", spec: RT5760A} CR3: {id: "TPS51125", company: "Texas Instruments", typeOfMatch: "Pin Compatible", spec: RT5760B} → specUuid→typeOfMatch 對映 (去重後): RT5760A → {"Pin Compatible", "Similar Function"} RT5760B → {"Pin Compatible"} → 收集葉子類別 → 向上展開祖先類別 → 取引數並集 → 最終列定義 → 展開行: PRODUCT_NUMBER | DATASHEET | TYPE_OF_MATCH | VIN_MIN | VIN_MAX | ... RT5760AHGH | (pdf) | Pin Compatible | 2.5 | 5.5 | ... RT5760AHGH | (pdf) | Similar Function | 2.5 | 5.5 | ... ← 同一 Family 展開為 2 行 RT5760BHGH | (pdf) | Pin Compatible | 2.5 | 5.5 | ...

4.2 Cross Reference Search Filters #

Endpoint: GET /bin/public/eds/cross-reference-search/filters

引數必填說明
keywordREQ搜尋關鍵詞
langOPT語言,預設 en

查詢流程: 與 Cross Reference Search 共享資料載入,返回可用的篩選條件定義。

請求示例

request
GET /bin/public/eds/cross-reference-search/filters?keyword=TPS51125&lang=en

5. Drawing Dimension API #

Endpoint: GET /bin/public/eds/drawing-dimension

引數必填說明
langOPT語言,預設 en
pageOPT頁碼,預設 1
page_sizeOPT每頁條數(預設 20,最大 200)
sort_byOPTPINS / PACKAGE_TYPE / PACKAGE_NAME,預設 PINS
sort_orderOPTasc / desc,預設 asc
filter.PINS.minOPT引腳數最小值
filter.PINS.maxOPT引腳數最大值
filter.PACKAGE_TYPE.valuesOPT逗號分隔的 PackageCategory ID
keywordOPT封裝型別或名稱關鍵詞

CF 關係

Package ──N:1──→ PackageCategory (封裝類別) Package → DAM 資料夾 (PDF、圖片、3D 模型、Footprint)

查詢流程

  1. 載入所有 PackagePackageCategory
  2. 批次解析 Package 的 packageCategory UUID 引用(零額外查詢)
  3. 先應用 keyword 篩選 → 作為篩選器計算的基礎
  4. 計算 PINS 篩選範圍(min/max)
  5. 構建 PACKAGE_TYPE 篩選器(兩層樹結構 + 計數)
  6. 應用 PINS 篩選 → 計算各篩選項數量
  7. 應用 PACKAGE_TYPE 篩選 → 最終結果
  8. 排序 → 分頁
  9. 掃描 DAM 資料夾獲取關聯檔案(Outline Dimension PDF、Footprint、Package Image、3D Model)
簡單說:全量載入 Package,記憶體中層層篩選,最後掃描 DAM 獲取關聯檔案。

請求示例

request · 3 examples
# 基礎查詢
GET /bin/public/eds/drawing-dimension?lang=en&page=1&page_size=20&sort_by=PINS&sort_order=asc

# 帶篩選: 引腳數 6~16,只看 QFN 型別
GET /bin/public/eds/drawing-dimension?filter.PINS.min=6&filter.PINS.max=16&filter.PACKAGE_TYPE.values=QFN&lang=en

# 關鍵詞搜尋
GET /bin/public/eds/drawing-dimension?keyword=WQFN&lang=en

資料流拆解

全量載入 Package (假設 200+ 個): WQFN3x3-16 → PackageCategory: QFN, pins: 16 WDFN2x2-6 → PackageCategory: QFN, pins: 6 SOP-8 → PackageCategory: SOP, pins: 8 SOT-563 → PackageCategory: SOT, pins: 6 ... filter.PINS.min=6, filter.PINS.max=16 → 過濾後剩餘 N 個 filter.PACKAGE_TYPE.values=QFN → 再過濾 最終表格: PINS | PACKAGE_TYPE | PACKAGE_NAME | OUTLINE_DIMENSION | FOOTPRINT | 3D_MODEL 6 | QFN | WDFN2x2-6 | outline.pdf | fp.pdf | model.stp 16 | QFN | WQFN3x3-16 | outline.pdf | fp.pdf | model.stp filters (同時返回): PINS: { min: 2, max: 64 } PACKAGE_TYPE: [ { id: "QFN", name: "QFN", count: 45, children: [ { id: "WQFN3x3-16", name: "WQFN3x3-16", count: 1 }, { id: "WDFN2x2-6", name: "WDFN2x2-6", count: 1 } ]}, { id: "SOP", name: "SOP", count: 12, children: [...] } ]

6. Product Categories API #

Endpoint: GET /bin/public/eds/product-categories

引數必填說明
idOPT指定 Category ID,只返回該子樹
depthOPT樹深度(1-10),預設 4
langOPT語言,預設 en

CF 關係

ProductCategory ──parent──→ ProductCategory (自引用,形成樹) ProductCategory → AEM Page (關聯頁面路徑)

查詢流程

  1. 若傳 id,載入指定 Category 為根節點;否則載入所有根節點
  2. 遞迴構建子樹(受 depth 限制)
  3. 判斷節點型別:有子節點 → "list",葉子節點 → "entry"
  4. 附加頁面路徑資訊
簡單說:遞迴構建 Category 樹結構,標註節點型別。

請求示例

request · 2 examples
# 獲取完整分類樹
GET /bin/public/eds/product-categories?lang=en&depth=3

# 獲取 Switching Regulators 子樹
GET /bin/public/eds/product-categories?id=EBD6A32C-4264-4153-8D5D-740F5D9A9C2E&lang=en

資料流拆解 (Switching Regulators 子樹)

Switching Regulators (EBD6A32C...) ← type: "list" ├── Step-Down (Buck) (B9E78412...) ← type: "list" │ ├── Converters (B6BF0E9E...) ← type: "list" │ │ ├── Vin < 8V (73C2EB1D...) ← type: "entry" (葉子節點) │ │ ├── Vin: 8~30V (FF166009...)← type: "entry" │ │ └── Vin > 30V (AA1EAAB6...)← type: "entry" │ └── Controllers (AEF2CE4A...) ← type: "entry" ├── Step-Up (Boost) (06B45C39...) ← type: "entry" ├── Step-Up or Step-Down (Buck-Boost) (E9AA0900...) ← type: "entry" ├── Multi-Phase Step-Down (FC54AFCC...) ← type: "entry" └── Digital Interface Control (F76BE25C...) ← type: "entry"

7. Application Categories API #

Endpoint: GET /bin/public/eds/application-categories

引數必填說明
langOPT語言,預設 en
pathOPT完整 JCR 路徑,不傳返回完整樹

CF 關係

ApplicationCategory ──parent──→ ApplicationCategory (自引用樹)

查詢流程

  1. 若傳 path,定位到該頁面對應的 ApplicationCategory 子樹
  2. 遞迴構建層級結構
  3. 每個節點包含:id、title、path、type (list/entry)、pageType、subtitle、description
簡單說:與 Product Categories 類似,遞迴構建應用類別樹。

請求示例

request · 2 examples
# 完整應用分類樹
GET /bin/public/eds/application-categories?lang=en

# 指定子樹
GET /bin/public/eds/application-categories?path=/content/richtek-eds/en/applications/industrial-control&lang=en

8. New Products API #

Endpoint: GET /bin/public/eds/new-products

引數必填說明
monthsOPT時間範圍 (3/6/12),預設 12
langOPT語言,預設 en

CF 關係

ProductSpec ──N:M──→ ProductCategory (通過 product_categories 陣列) ProductSpec.updateDay → 日期判斷

查詢流程

  1. 查詢 updateDay 在指定月份範圍內的所有 ProductSpec
  2. 頂層 ProductCategory 分組
  3. 附加關聯頁面路徑
  4. 返回按類別分組的新產品列表
簡單說:按 updateDay 時間範圍篩選 Spec,按頂層類別分組返回。

請求示例

request
GET /bin/public/eds/new-products?months=6&lang=en

返回結構示例

json · response
{
  "data": [
    {
      "category_id": "EBD6A32C-4264-4153-8D5D-740F5D9A9C2E",
      "category_name": "Switching Regulators",
      "products": [
        { "id": "RT2101A", "name": "RT2101A", "subtitle": "2.95V to 6V Input, 3A Output...", "page_link": "/content/richtek-eds/en/products/..." },
        { "id": "RT5760A", "name": "RT5760A", "subtitle": "...", "page_link": "..." }
      ]
    },
    {
      "category_id": "48083B19-DAA6-402B-8B92-BEE0292EAD11",
      "category_name": "Linear Regulators",
      "products": [...]
    }
  ]
}

9. Home Page Explore Products API #

Endpoint: GET /bin/public/eds/home-page-explore-products

引數必填說明
langOPT語言,預設 en

CF 關係

ApplicationCategory (L1) ──1:N──→ ApplicationCategory (L2 子類別)

查詢流程

  1. 查詢所有 L1 ApplicationCategory(頂層應用類別)
  2. 為每個 L1 類別載入 L2 子類別作為側邊選單
  3. 每個類別返回:description、learn-more 連結、佔位圖 URL、L2 子類別列表
簡單說:首頁用,返回 L1 應用類別 + L2 子類別側邊選單。

請求示例

request
GET /bin/public/eds/home-page-explore-products?lang=en

10. Product Spec Data API #

Endpoint: GET /bin/public/eds/data/product-specs

引數必填說明
idREQProductSpec ID
langOPT語言,預設 en

CF 關係

ProductSpec ──1:N──→ ProductFamily (獲取統一狀態) ProductSpec ──1:N──→ EvaluationBoard ──→ EvbPage (獲取 EVB 圖片)

查詢流程

  1. 載入 ProductSpec
  2. 根據 updateDay 判斷 is_new(一年內)
  3. 通過 ProductFamily 計算統一狀態(Active/NRND/EOL/多種狀態)
  4. 載入該 Spec 的所有 EvaluationBoard
  5. 載入 EVB 關聯頁面,從頁面中提取 rtk-image-switcher 元件的圖片
  6. 掃描該 Spec 的 Product Data Sheet PDF 資料夾(product-data-sheets/pdf):存在具 original rendition 的 DAM Asset 時 has_downloadable_documents = true
  7. 返回:name、subtitle、is_new、status、has_downloadable_documents、evb_images
簡單說:返回 Spec 基礎資訊 + 統一狀態 + EVB 圖片列表。

請求示例

request
GET /bin/public/eds/data/product-specs?id=RT2101A&lang=en

返回示例

json · response
{
  "data": {
    "name": "RT2101A",
    "subtitle": "2.95V to 6V Input, 3A Output, 2MHz, Synchronous Step-Down Converter",
    "is_new": true,
    "status": "Active",
    "has_downloadable_documents": true,
    "evb_images": [
      { "url": "/content/dam/richtek/...", "alt": "RT2101A-EVB Top View" }
    ]
  }
}

11. Product Group Data API #

Endpoint: GET /bin/public/eds/data/product-groups

引數必填說明
idREQProductGroup ID
langOPT語言,預設 en

CF 關係

ProductGroup ──1:N──→ ProductSpec ──→ ProductFamily (狀態) ──→ ProductSpecPage (頁面圖片) ──→ EvaluationBoard ──→ EvbPage (EVB 圖片)

查詢流程

  1. 載入該 Group 下所有 ProductSpec
  2. 判斷 is_new(任一 Spec 的 updateDay 在一年內即為 true)
  3. 計算統一狀態(多個 Spec 狀態不同時顯示 "See Product Status")
  4. 載入所有 ProductSpecPage,提取三類圖片:
    • orderbanner_images(橫幅圖片)
    • product_images(產品圖片)
    • evb_images(評估板圖片)
  5. 載入 EvaluationBoard + EvbPage,提取額外 EVB 圖片
  6. 提取 Spec 頁面上的 ordering 詳細資訊
  7. 掃描群組下各 Spec 的 Product Data Sheet PDF 資料夾:任一存在具 original rendition 的可下載 DAM Asset 時 has_downloadable_documents = true
簡單說:聚合 Group 下所有 Spec 的狀態、圖片、訂購資訊。

請求示例

request
GET /bin/public/eds/data/product-groups?id=RT2101&lang=en

資料流拆解

RT2101 (Group) → RT2101A (Spec, updateDay=2026/03/15, status=Active) → RT2101B (Spec, updateDay=2025/11/20, status=Active) is_new: true (RT2101A 在一年內) status: "Active" (所有 Spec 狀態一致) 若 RT2101A=Active, RT2101B=NRND → status: "See Product Status"

12. Product Category Data API #

Endpoint: GET /bin/public/eds/data/product-categories

引數必填說明
idOPTCategory ID,不傳返回全部
langOPT語言,預設 en

查詢流程

  • id:返回單個 ProductCategory 詳情
  • 不傳 id:返回所有 ProductCategory 列表
簡單說:簡單的 CRUD 讀取介面。

請求示例

request · 2 examples
# 獲取單個
GET /bin/public/eds/data/product-categories?id=EBD6A32C-4264-4153-8D5D-740F5D9A9C2E&lang=en
# 返回: { id: "EBD6A32C...", name: "Switching Regulators", subtitle: "..." }

# 獲取全部
GET /bin/public/eds/data/product-categories?lang=zh_cn
# 返回: [{ id: "C23F2050...", name: "交流-直流轉換" }, { id: "807A37F0...", name: "放大器" }, ...]

13. EVB Data API #

Endpoint: GET /bin/public/eds/data/evaluation-boards

引數必填說明
idREQEvaluationBoard ID
langOPT語言,預設 en

CF 關係

EvaluationBoard ──N:M──→ ProductSpec (resolvedProductSpecs) ProductSpec ──→ ProductSpecPage (獲取產品圖片)

查詢流程

  1. id 載入 EvaluationBoard(找不到 → 404
  2. 解析該 EVB 關聯的所有 ProductSpecresolveProductSpecs
  3. 批次載入各 Spec 的頁面,提取產品圖片
  4. 掃描該 EVB 的 documents 資料夾:存在具 original rendition 的 DAM Asset 時 has_downloadable_documents = true
  5. 返回:statustitlehas_downloadable_documentsspecs[](id + title)、product_images[](img + image-alt + title + description)
簡單說:返回 EVB 基礎資訊 + 關聯 Spec 列表 + 產品圖片。注意這是「資料 API」,與 product-table 的 evb 表(表格輸出)不同。

請求示例

request
GET /bin/public/eds/data/evaluation-boards?id=EVB-RT2101A&lang=en

返回示例

json · response
{
  "data": {
    "status": "Active",
    "title": "EVB-RT2101A",
    "has_downloadable_documents": true,
    "specs": [ { "id": "RT2101A", "title": "RT2101A" } ],
    "product_images": [
      { "img": "/content/dam/richtek/...", "image-alt": "...", "title": "...", "description": "..." }
    ]
  }
}

14. News Data API #

Endpoint: GET /bin/public/eds/data/news

引數必填說明
idREQNews ID
langOPT語言,預設 en
資料根: News 屬於 Tech Insights,CF 位於 /content/dam/richtek-eds/data,與產品資料根 /content/dam/richtek/data 不同。

查詢流程

  1. id 載入 News CF(找不到 → 404
  2. 映射 CF 欄位為回應(日期格式化為 yyyy-MM-dd,空值回退為空字串 / 空陣列)

回應欄位: idtitledateauthorcard_imagetag_list[]product_specs[]evaluation_boards[]

請求示例

request
GET /bin/public/eds/data/news?id=<newsId>&lang=en

15. Video Data API #

Endpoint: GET /bin/public/eds/data/video

引數必填說明
idREQVideo ID
langOPT語言,預設 en
資料根: Video 同屬 Tech Insights,CF 位於 /content/dam/richtek-eds/data

查詢流程

  1. id 載入 Video CF(找不到 → 404
  2. 映射 CF 欄位為回應(同 News,多一個 video_duration

回應欄位: idtitledatevideo_durationcard_imagetag_list[]product_specs[]evaluation_boards[]

請求示例

request
GET /bin/public/eds/data/video?id=<videoId>&lang=en

16. Webinar Data API #

Endpoint: GET /bin/public/eds/data/webinar

引數必填說明
idREQWebinar ID
langOPT語言,預設 en;非法非空值回退英文
資料根: Webinar 同屬 Tech Insights(News / Video / Webinar),CF 位於 /content/dam/richtek-eds/data,與產品資料根 /content/dam/richtek/data 不同。

查詢流程

  1. id 載入 Webinar CF(找不到 → 404,訊息 "Resource 'Webinar: {id}' does not exist."
  2. 映射 CF 欄位為回應(日期格式化為 yyyy-MM-dd,空值回退為空字串 / 空陣列)
  3. 不展開關聯: product_specs / evaluation_boards 僅返回 CF 中保存的原始 UUID 陣列,不解析名稱或頁面路徑

回應欄位: idtitle(取 CF name)、datecard_imagetag_list[]product_specs[]evaluation_boards[]

簡單說:與 News / Video 同一 Tech Insights 家族的資料 API。相比 News 少 author、相比 Video 少 video_duration;關聯欄位一律回傳原始 UUID。

請求示例

request
GET /bin/public/eds/data/webinar?id=<webinarId>&lang=en

17. Application Note Data API #

Endpoint: GET /bin/public/eds/data/application-note

引數必填說明
idREQApplication Note ID
langOPT語言,預設 en
資料根: Application Note 屬產品資料,CF 與 PDF 位於 /content/dam/richtek/data/{lang}/resources/application-notes/{id}(與 Tech Insights 的 richtek-eds 根不同)。

CF 關係

ApplicationNote ──→ ProductSpec (product_specs, 原始 UUID 引用, 不展開) ApplicationNote/{id}/pdf ──掃描──→ has_downloadable_documents

查詢流程

  1. id 載入 ApplicationNote CF(找不到 → 404,訊息 "Resource 'Application note: {id}' does not exist."
  2. 掃描該 AN 的 pdf 資料夾(.../application-notes/{id}/pdf):存在至少一個具 original rendition 的 DAM Asset 時 has_downloadable_documents = true(不返回檔案清單)
  3. 不展開關聯: product_specs 僅返回 CF 中保存的原始 UUID 陣列,不解析名稱或頁面路徑
  4. 字串欄位缺值時回退為空字串 "",陣列欄位缺值時回退為空陣列

回應欄位: idtitletitle_endateyyyy-MM-dd)、authorproduct_specs[]has_downloadable_documents

請求示例

request
GET /bin/public/eds/data/application-note?id=<applicationNoteId>&lang=en

18. Parametric Search Categories API #

Endpoint: GET /bin/public/eds/parametric-search-categories

引數必填說明
depthOPT樹深度(1-10),預設 4
langOPT語言,預設 en

CF 關係

ProductCategory ──parent──→ ProductCategory (自引用樹)

查詢流程

  1. 校驗 depth(超出 1-10 → 400)
  2. 遞迴構建 ProductCategory 樹(與 Product Categories API 同一 ProductCategoriesData 結構:id / title / description / type(list|entry) / url / list[]
  3. 差異: 每個節點的 url 指向參數搜尋頁內容路徑(而非一般 Spec / 分類頁),供參數搜尋頁的分類導覽使用
簡單說:與 Product Categories API 結構相同,差別只在 url 指向參數搜尋頁;且不接受 id 參數(永遠回傳整棵樹)。

請求示例

request
GET /bin/public/eds/parametric-search-categories?depth=1&lang=zh_tw

19. Block APIs #

19.1 Navigation List / Side Menu #

Endpoints:

  • GET /bin/public/eds/blocks/navigation-list
  • GET /bin/public/eds/blocks/side-menu
引數必填說明
sectionREQ頁面區域(如 about-richtek, browse-quality-reliability)
langOPT語言,預設 en

查詢流程

  1. 根據 section 構建完整 JCR 路徑:/content/richtek-eds/{lang}/{section}
  2. 通過 PageManager 獲取根頁面
  3. 遞迴遍歷子頁面,構建層級樹
  4. 節點型別標註:有子節點 → "list",葉子 → "entry"
簡單說:從 AEM 頁面樹遞迴構建導航結構。

請求示例

request · 2 examples
GET /bin/public/eds/blocks/navigation-list?section=about-richtek&lang=en
GET /bin/public/eds/blocks/side-menu?section=browse-quality-reliability&lang=en

19.2 Diagram Menu #

Endpoint: GET /bin/public/eds/blocks/diagram-menu

引數必填說明
idREQProductSpec ID(多值)
langOPT語言,預設 en

CF 關係

ProductSpec ──→ ProductSpecPage (購買連結) ──1:N──→ ProductFamily (統一狀態) ──N:M──→ ProductCategory (第一個分類 ID)

查詢流程

  1. 批次載入 ProductSpecProductSpecPage
  2. 對每個 Spec:
    • 計算統一狀態,過濾掉 NRND 和 EOL
    • 獲取購買連結、Datasheet 連結
    • 判斷 is_new
    • 獲取第一個關聯的 ProductCategory ID
  3. 返回有效 SpecItem 列表 + 被排除的 ID 列表
簡單說:批次查 Spec 詳情,過濾掉停產產品,返回方框圖選單資料。

請求示例

request
GET /bin/public/eds/blocks/diagram-menu?id=RT2101A&id=RT5760A&id=RT5760B&lang=en

資料流拆解

輸入 3 個 Spec ID: RT2101A, RT5760A, RT5760B RT2101A → status: Active → 保留 → shopping_link: "/content/richtek-eds/en/products/.../rt2101a" → datasheet_url: "/content/dam/.../DS2101A-xx.pdf" → is_new: true → category_id: "73C2EB1D..." (Vin < 8V) RT2101A → status: Active → 保留 RT5760A → status: Active → 保留 RT5760B → status: EOL → 排除 返回: items: [RT2101A 的 SpecItem, RT5760A 的 SpecItem] excluded: [{ id: "RT5760B", reason: "status_filtered" }]

Endpoint: GET /bin/public/eds/blocks/related-products

引數必填說明
idREQProductSpec ID(多值)
langOPT語言,預設 en

CF 關係

ProductSpec ──→ ProductSpecPage (購買連結) ──→ ProductFamily ──→ Product ──→ Package (卡片圖片回退) ──N:M──→ ProductCategory (頂層分類,最多 2 個)

查詢流程

  1. 批次載入 ProductSpecProductSpecPage
  2. 載入分類並查詢祖先節點
  3. 對每個 Spec:
    • 檢查 DAM 中是否有卡片圖片
    • 若無 → 沿 Spec → Family → Product → Package → images 資料夾查詢第一張圖
    • 無圖則跳過該 Spec
    • 判斷 is_new
    • 獲取頂層分類(最多 2 個)
    • 獲取購買連結、Datasheet 連結
簡單說:批次查 Spec,帶卡片圖片回退查詢邏輯(從 Spec 一路找到 Package 圖片)。

請求示例

request
GET /bin/public/eds/blocks/related-products?id=RT2101A&id=RT5760A&lang=en

卡片圖片回退邏輯

RT2101A: 1. 檢查: /content/dam/richtek/resources/product-specifications/rt2101a/images/card.jpg → 不存在 2. 回退: RT2101A (Spec) → RT2101A (Family) → RT2101AGQW (Product) → WQFN3x3-16 (Package) → /content/dam/richtek-eds/resources/packages/wqfn3x3-16/images/ → 找到第一張圖 3. card_img_url = "/content/dam/richtek-eds/resources/packages/wqfn3x3-16/images/wqfn3x3-16.jpg" 返回: categories: ["Switching Regulators"] (頂層分類,最多 2 個)

19.4 New Products Card #

Endpoint: GET /bin/public/eds/blocks/new-products-card

引數必填說明
categoryId2-OF指定類別
scope=all2-OF全部新產品
monthsOPT時間範圍
limitOPT返回數量上限
langOPT語言,預設 en

CF 關係

ProductCategory (root + 後代) ──N:M──→ ProductSpec (按 updateDay 篩選) ProductSpec ──→ ProductSpecPage (卡片圖片優先) ──→ ProductFamily ──→ Product ──→ Package (圖片回退)

查詢流程

  1. 若傳 categoryId:展開類別樹,收集所有後代 UUID
  2. 查詢指定月份內更新的 ProductSpec
  3. 記憶體中按類別 UUID 集合篩選
  4. 載入 ProductSpecPage
  5. 兩階段卡片圖片解析:
    • Phase 1:從 SpecPage 獲取卡片圖片(零額外查詢)
    • Phase 2:批次載入 Family → Product → Package 鏈,從 Package 圖片資料夾查詢
  6. 應用數量限制
  7. 返回新產品卡片列表
簡單說:按時間範圍篩選新 Spec,兩階段解析卡片圖片,支援按類別範圍過濾。

請求示例

request · 2 examples
# 指定 Switching Regulators 類別下最近 6 個月的新產品,最多 10 個
GET /bin/public/eds/blocks/new-products-card?categoryId=EBD6A32C-4264-4153-8D5D-740F5D9A9C2E&months=6&limit=10&lang=en

# 全部新產品
GET /bin/public/eds/blocks/new-products-card?scope=all&months=12&lang=en

19.5 Tech Insight #

Endpoint: GET /bin/public/eds/blocks/tech-insight

引數必填說明
scopeREQall / product_category / application_category
category_idCNDscope 非 all 時必填
langOPT語言,預設 en

CF 關係

ProductCategory/ApplicationCategory ──→ ProductSpec UUID 集合 ProductSpec UUID ──→ News / Video / Webinar (通過 product_specs 引用)

查詢流程(按 scope)

scope=all:

  1. 查詢最近 12 個月的 News、Video、Webinar
  2. 合併、去重(按 tag:id)、按日期倒序排列

scope=product_category:

  1. 展開 Category 樹,收集所有 ProductSpec UUID
  2. 分批(每批 100)查詢關聯的 News/Video/Webinar
  3. 去重、排序

scope=application_category:

  1. 查詢 ApplicationCategory 及其後代
  2. 從 Application CF 中提取 ProductSpec UUID
  3. 查詢關聯的 News/Video/Webinar
  4. 去重、排序
簡單說:根據範圍收集關聯的 Spec UUID,查詢相關的新聞/影片/研討會。

請求示例

request · 3 examples
# 首頁: 全部 Tech Insight
GET /bin/public/eds/blocks/tech-insight?scope=all&lang=en

# 產品分類頁: Switching Regulators 相關
GET /bin/public/eds/blocks/tech-insight?scope=product_category&category_id=EBD6A32C-4264-4153-8D5D-740F5D9A9C2E&lang=en

# 應用分類頁
GET /bin/public/eds/blocks/tech-insight?scope=application_category&category_id=industrial-control&lang=en

19.6 Tech Insight By Page (舊版) #

Endpoint: GET /bin/public/eds/blocks/tech-insight-by-page

舊版頁面級查詢,保留用於 Application 頁面的 block diagram 元件關聯查詢。新程式碼應優先使用 tech-insightscope=application_category
引數必填說明
category_idREQApplication Category ID
langOPT語言,預設 en

查詢流程

  1. 查詢 Application Category 頁面及其子頁面
  2. 遞迴遍歷所有 rtk-block-diagram-menu 元件節點(支援多個 diagram)
  3. 收集元件 items 中的 Spec ID
  4. 解析 Spec ID 為 ProductSpec UUID
  5. 用 UUID 批次查詢關聯的 News/Video/Webinar
  6. 去重、按日期倒序排列
簡單說:與 tech-insight 的 application_category scope 功能類似,但資料來源是頁面元件而非 CF 關聯。

請求示例

request
GET /bin/public/eds/blocks/tech-insight-by-page?category_id=industrial-control&lang=en

19.7 Tag List #

Endpoint: GET /bin/public/eds/blocks/tag-list

引數必填說明
page_pathsREQ頁面路徑(多值)
langOPT語言,預設 en

查詢流程

  1. 接收頁面路徑陣列
  2. 獲取每個頁面的標籤資訊
  3. 返回 TagInfo 列表
簡單說:簡單的頁面標籤讀取。

請求示例

request
GET /bin/public/eds/blocks/tag-list?page_paths=/content/richtek-eds/en/products/switching-regulators&page_paths=/content/richtek-eds/en/products/linear-regulators&lang=en

Endpoint: GET /bin/public/eds/blocks/related-read-more

Tech Insight 頁(News / Video / Webinar)底部的「Related」與「Read More」兩區內容。

引數必填說明
source_typeREQ來源型別:news / video / webinar(其他值 → 400)
source_idREQ來源內容 ID
related_limitOPTRelated 區數量,預設 5,上限 20
read_more_limitOPTRead More 區數量,預設 5,上限 20
related_exclude_idOPTRelated 區排除的 ID(多值)
read_more_exclude_idOPTRead More 區排除的 ID(多值)
langOPT語言,預設 en

查詢流程

  1. 校驗 source_type(轉 TechInsightContentType,非法 → 400)與 source_id(含路徑穿越校驗)
  2. 解析兩區的 limit(負值/超限 → 收斂到預設 5 / 上限 20)與 exclude 清單
  3. RelatedReadMoreService.findItems 分別計算 Related 與 Read More 兩組項目
  4. 返回 relatedread_more 兩區,每區為 items[],每個 item = id / name / url

返回示例

json · response
{
  "data": {
    "related":   { "items": [ { "id": "...", "name": "...", "url": "..." } ] },
    "read_more": { "items": [ { "id": "...", "name": "...", "url": "..." } ] }
  }
}

請求示例

request
GET /bin/public/eds/blocks/related-read-more?source_type=news&source_id=<newsId>&related_limit=4&lang=en

20. 附錄: 真實資料參考 #

20.1 頂層產品分類 (L1) #

ID (UUID)英文名簡體中文名
C23F2050-DC7D-...AC-DC交流-直流轉換
807A37F0-8F24-...Amplifiers放大器
661100B2-B47C-...Battery Management電池管理
48083B19-DAA6-...Linear Regulators線性穩壓器
EBD6A32C-4264-...Switching Regulators開關穩壓器
6C4ECCFE-081B-...USB Type-C & PD SolutionsUSB-C 與 PD 解決方案

20.2 分類層級示例 (Switching Regulators) #

Switching Regulators (EBD6A32C) └── Step-Down / Buck (B9E78412) ├── Converters (B6BF0E9E) │ ├── Vin < 8V (73C2EB1D) ← 葉子節點,可用於 parametric-search │ ├── Vin: 8~30V (FF166009) │ └── Vin > 30V (AA1EAAB6) └── Controllers (AEF2CE4A)

20.3 產品引數定義示例 (Vin < 8V 類別) #

引數名顯示名單位資料型別篩選型別
VIN_MINVin (min)VNUMERICRANGE_VALUE_SLIDER
VIN_MAXVin (max)VNUMERICRANGE_VALUE_SLIDER
IOUT_MAXIout (max)ANUMERICRANGE_VALUE_SLIDER
ADJUSTABLEOutput Adj. Method-STRINGCHECKBOX
QUIESCENT_TYPIq (typ)mANUMERICRANGE_VALUE_SLIDER
CURRENT_LIMITSW Current Limit (typ)ANUMERICRANGE_VALUE_SLIDER
SWITCH_FREQFreq (typ)kHzNUMERICRANGE_VALUE_SLIDER
RDS_HIGHRon HS (typ)NUMERICRANGE_VALUE_SLIDER
OTHERS_FEATURESFeatures-STRINGCHECKBOX
PACKAGE_TYPEPackage Type-STRINGCHECKBOX

20.4 產品狀態值 #

Active
在產 — 綠色圖示
NRND
不推薦用於新設計 — 黃色圖示
LTB
最後訂購期限(附截止日期)— 黃色圖示
EOL
停產 — 紅色圖示
See Product Status
多個 Spec 狀態不一致時顯示