# URI-G-18 all-category / a to z API > [name=JasonWu] ###### tags: `URI-G` ## 內容 ### 舊版網址 - https://www.taiwantrade.com/categories-view/all-category.html ### 相關示意圖 - 依照分類顯示 ![](https://i.imgur.com/Th4rax6.jpg) - 依照字母順序顯示 ![](https://i.imgur.com/qUnvnQW.jpg) ### 相關程式 - 參考 ttcms 程式 - com.hyweb.tt.cms.cm.webservice.TaitracodeWebService - getList > 取得清單 - formClassify > 組合 classify 內容 - formAlphaBeta > 組合 a to z 內容 - sortArticle > 資料排序 ### Input JSON Path #### 規格 - path : ${TT-API網址}/category-view/{type}/{did} - method : GET #### Input 欄位名稱 | 欄位說明 | 資料型態 | 是否必要欄位 | 備註 -----------|--------------|----------|--------------|--------- type | 類型 | string | Y | 分為 classify 與 atoz 兩種 did | domain id | number | Y | int ==舊版紀錄如下 Column | Type | Require | Desc -----------|----------|---------|--------- type | string | Y | 類型,分為 classify 與 atoz 兩種 did | number | Y | domain id #### 範例 ```=json https://tt-api.taiwantrade.com/category-view/classify/2 https://tt-api.taiwantrade.com/category-view/atoz/2 ``` #### 邏輯 - 認證類型分兩類,對應參數紀錄如下 - 分類型: classify - 字母排序型: atoz - 解析 json 內容後顯示 - 依照傳入不同的類型,回傳的 classify 與 atoz 的內容不同 - 如果傳入 classify,請解析 classify,atoz 會是空的 - 反之,如果傳入 atoz,請解析 atoz,classify 會是空的 - classify 格式,要呈現階層式的效果,需要跟客戶討論 json 格式 - 直接採用階層式,二碼包四碼,四碼再包六碼 - 採用二碼一包,四碼一包,六碼一包,顯示時再各自尋找 parent 來組合 - 目前建議 json 格式採用二碼、四碼、六碼一包的方式 - atoz 格式,上面要有一排首字母,點選首字母後,跳轉到對應的區塊 - classify 需求 ![](https://i.imgur.com/C1iEUF8.jpg) - 首先需要解析 did,確定是標準 taitra code 還是自訂義 taitra code - 如果是標準 taitra code,透過 sql 取值 - 如果是自訂義 taitra code,透過 idol 取值 - 貿協希望 classify 也要提供二碼的跳轉效果,請參考圖片,參考網址 : https://www.alibaba.com/Products?spm=a27aq.21734014.scGlobalHomeHeader.360.53c962baI9g7Q1 - 點選後,跳轉到對應的二碼 classify,這一段可以解析 classify2 取得 - 依照回報訊息調整,api 回傳的 classify2 的內容排序依照目前的排序效果;api 回傳的 classify4 與 classify6 的排序依照字母來排列,套板時直接依照回傳 api 的排序來顯示 - classifyDefine 區塊內容資料放的是只有 classify2 資料,但沒有所屬的 classify4 與 classify6,這類的不需要特別的跳轉快捷列,直接顯示即可 ### Output JSON Path #### 規格 ```=json { "code" : <code>, "errorMsg" : <errorMsg>, "intervalTime" : <intervalTime>, "data" : { "classify2" : [ { "cateId" : <cateId>, "parentCateId" : <parentCateId>, "title" : <title>, "url" : <url> },... ], "classify4" : [ { "cateId" : <cateId>, "parentCateId" : <parentCateId>, "title" : <title>, "url" : <url> },... ], "classify6" : [ { "cateId" : <cateId>, "parentCateId" : <parentCateId>, "title" : <title>, "url" : <url> },... ], "classifyDefine" : [ { "cateId" : <cateId>, "parentCateId" : <parentCateId>, "title" : <title>, "url" : <url> },... ], "atoz" : [ { "cateId" : <cateId>, "firstChar" : <firstChar>, "title" : <title>, "url" : <url> },... ] } } ``` #### 輸出參數說明 all-category / a to z 輸出欄位 欄位名稱 | 欄位說明 | 資料型態 | 是否可為空值 | 備註 -----------|--------------|----------|--------------|-------- code | 執行狀態代碼 | number | N | int<br/>code=0為正常<br/>code<0為錯誤 errorMsg | 錯誤訊息 | string | N | intervalTime | 執行時間 | string | N | 顯示執行時間,單位 ms data | 主要輸出欄位 | [`主要輸出欄位(Object)`](#主要輸出欄位) | Y | 主要輸出欄位 ==舊版紀錄如下 |欄位名稱 | 欄位說明 | 型態 | 是否可為空值 | |--------------------|-------------|----------|------------| |code | 代碼 | int | 0表示ok | |errorMsg | 錯誤訊息 | string | | |data | 主要輸出欄位 | [`主要輸出欄位(Object)`](#主要輸出欄位) | | ##### 主要輸出欄位 欄位名稱 | 欄位說明 | 資料型態 | 是否可為空值 | 備註 -----------|--------------|----------|--------------|--------- classify2 | 二碼分類 | [`taitra code 分類格式(Object)`](#分類格式taitraCode) | Y | classify4 | 四碼分類 | [`taitra code 分類格式(Object)`](#分類格式taitraCode) | Y | classify6 | 六碼分類 | [`taitra code 分類格式(Object)`](#分類格式taitraCode) | Y | classifyDefine | 自定義分類 | [`taitra code 分類格式(Object)`](#分類格式taitraCode) | Y | atoz | 字母分類 | [`字母分類格式(Object)`](#字母分類格式atoz) | Y | ==舊版紀錄如下 |欄位名稱 | 欄位說明 | 型態 | 是否可為空值 | |--------------------|-------------|----------|------------| |classify2 | 二碼分類 | [`taitra code 分類格式(Object)`](#分類格式taitraCode) | Y | |classify4 | 四碼分類 | [`taitra code 分類格式(Object)`](#分類格式taitraCode) | Y | |classify6 | 六碼分類 | [`taitra code 分類格式(Object)`](#分類格式taitraCode) | Y | |atoz | 字母分類 | [`字母分類格式(Object)`](#字母分類格式atoz) | Y | ##### 分類格式taitraCode 欄位名稱 | 欄位說明 | 資料型態 | 是否可為空值 | 備註 -------------|------------------|----------|--------------|--- cateId | 分類 id | number | N | int parentCateId | 父結點 id | number | Y | int,二碼與自定義為 null,其他四碼六碼必須有值 title | 顯示名稱 | string | N | url | 點選後連結的 url | string | N | ==舊版紀錄如下 |欄位名稱 | 欄位說明 | 型態 | 是否可為空值 | |-------------------|-----------------------------|--------|--------------| |cateId | 分類 id | int | N | |parentCateId | 父結點 id | int | 二碼為 null,其他四碼六碼必須有值 | |~~sort~~ | ~~順序~~ | ~~int~~ | ~~N~~ | |title | 顯示名稱 | string | N | |url | 點選後連結的 url | string | N | ##### 字母分類格式atoz 欄位名稱 | 欄位說明 | 資料型態 | 是否可為空值 | 備註 -------------|------------------|----------|--------------|--- cateId | 分類 id | number | N | int firstChar | 首字母 | string | N | 首字母為 A~Z,其他的顯示 Other title | 顯示名稱 | string | N | url | 點選後連結的 url | string | N | ==舊版紀錄如下 |欄位名稱 | 欄位說明 | 型態 | 是否可為空值 | |-------------------|-----------------------------|--------|--------------| |cateId | 分類 id | int | N | |firstChar | 首字母 | string | N | |~~sort~~ | ~~順序~~ | ~~int~~ | ~~N~~ | |title | 顯示名稱 | string | N | |url | 點選後連結的 url | string | N | #### 範例 ```=json { "code" : 0, "errorMsg" : "", "intervalTime" : "4360 ms", "data" : { "classify2" : [ { "cateId" : 5739, "parentCateId" : null, "title" : "Agricultural & Food", "url": "word=*&cate=5739&type=product&style=gallery&cateName=agricultural-food" }, { "cateId" : 5741, "parentCateId" : null, "title" : "Mineral & Metallurgy", "url": "word=*&cate=5741&type=product&style=gallery&cateName=mineral-metallurgy" } ], "classify4" : [ { "cateId" : 5850, "parentCateId" : 5739, "title" : "Livestock", "url": "word=*&cate=5850&type=product&style=gallery&cateName=livestock" }, { "cateId" : 5837, "parentCateId" : 5741, "title" : "Energy Minerals", "url": "word=*&cate=5837&type=product&style=gallery&cateName=energy-minerals" } ], "classify6" : [ { "cateId" : 7142, "parentCateId" : 5850, "title" : "Chicken", "url": "word=*&cate=7142&type=product&style=gallery&cateName=chicken" }, { "cateId" : 5903, "parentCateId" : 5837, "title" : "Coal", "url": "word=*&cate=5903&type=product&style=gallery&cateName=coal" } ], "classifyDefine": [ { "cateId": 72250, "parentCateId": null, "title": "temp name", "url": "word=*&cate=72250&type=product&style=gallery&cateName=temp-name" } ], "atoz" : [ { "cateId" : 8627, "firstChar" : "A", "title" : "A / V Switch & Splitter", "url": "word=*&cate=8627&type=product&style=gallery&cateName=a-v-switch-splitter" }, { "cateId" : 8674, "firstChar" : "B", "title" : "Baby Bathtub & Bathing Accessories", "url": "word=*&cate=8674&type=product&style=gallery&cateName=baby-bathtub-bathing-accessories" } ] } } ```