# URI-J-04~06 Supplier Alert > [name=JasonWu, Hans] ###### tags: `電子報訂閱` ## 網址 - https://{domain}/taiwantradeAlert/subscribeCompany/ - ex: https://www.taiwantrade.com/taiwantradeAlert/subscribeCompany/ ## 原版程式 - com.hyweb.tt.cms.front.rest.SubscribeResource.java ## 頁面功能說明 - 首先輸入 email,檢查相關訂閱資訊;如果已經登入,省略此動作,直接進入編輯畫面 - 成功之後,提供使用者輸入訂閱的相關資訊 - 輸入 keyword,找出符合 keyword 的公司 - 選擇後分類,找出符合的公司 - 最多可以選擇 100 項 - 需要有 google 的機器人驗證 - 送出後,記錄相關資料 ## 相關 api 分析 - 預計應提供四隻 api - subscribe catalog2 list api > 找出目前可用的二碼 taitra code - subscribe keyword and catalog2 search api > 輸入查詢詞或是二碼 taitra code 找出符合的公司 - supplier alert save api > 點選送出後,儲存相關資料 - supplier alert remove api > 點選送出後,刪除相關資料 ## subscribe catalog2 list api - https://www.taiwantrade.com/dataws/searchComponent/getCatalogStandardRootList ### 規格 - path : ${TT-API網址}/subscriptions/catalog-list - method : POST ### API 邏輯 - 找出目前可用的二碼 taitra code ### Input ```=json {"did" : {{number}}} ``` ### Output - json 內容如下: ```=json [ { "id" : {{ number }} , // 二碼 taitra code "name" : {{ string }} // 二碼 taitra code name } ] ``` #### 輸出參數說明 | 欄位名稱 | 欄位說明 | 型態 | | -------- | -------- | -------- | | <span id="resultId">id</span> | 產業別ID(2碼) | int | | name | 產業別名稱 | String | ### 實際範例 <details> <summary> Input(Click to Show/Hide Output) ```=json { "did": 2 } ``` </summary> Output ```=json { "code": 0, "errorMsg": "", "data": [ { "id": 1, "name": "Agricultural & Foods" }, { "id": 2, "name": "Mineral & Metallurgy" }, { "id": 3, "name": "Chemicals" }, { "id": 4, "name": "Beauty & Personal Care" }, { "id": 5, "name": "Textile & Leather" }, { "id": 6, "name": "Apparel & Accessories" }, { "id": 7, "name": "Luggage, Bags & Cases" }, { "id": 8, "name": "Timepiece, Jewelry & Eyewear" }, { "id": 9, "name": "Hardware" }, { "id": 10, "name": "Tools999" }, { "id": 11, "name": "Machinery" }, { "id": 12, "name": "Mechanical Parts" }, { "id": 13, "name": "Electrical & Electronics" }, { "id": 14, "name": "Consumer Electronics" }, { "id": 15, "name": "Home Appliances" }, { "id": 16, "name": "Lights & Lighting" }, { "id": 17, "name": "Computer" }, { "id": 18, "name": "Telecom Products" }, { "id": 19, "name": "Automobiles & Motorcycles" }, { "id": 20, "name": "Bicycles" }, { "id": 21, "name": "Aerospace" }, { "id": 22, "name": "Ships & Boats" }, { "id": 23, "name": "Security & Protection" }, { "id": 24, "name": "Medical & Health" }, { "id": 25, "name": "Measurement & Analysis Instrument" }, { "id": 26, "name": "Construction" }, { "id": 27, "name": "Furniture" }, { "id": 28, "name": "Houseware" }, { "id": 29, "name": "Toys, Baby & Pet Products" }, { "id": 30, "name": "Sports" }, { "id": 31, "name": "Musical Instruments" }, { "id": 32, "name": "Office & School Supplies" }, { "id": 33, "name": "Gifts & Crafts" }, { "id": 34, "name": "Packaging, Printing & Advertising" }, { "id": 35, "name": "Services" } ] } ``` </details> ## subscribe keyword search api - https://www.taiwantrade.com/taiwantradeAlert/queryCompaniesByCatalogAndKeyword?page=1&rows=10&keyword=&catalog=&did=2&languageId=42 ### 規格 - path : ${TT-API網址}/subscriptions/company-list - method : POST - query : ### API 邏輯 - 依照查詢條件,找出公司列表 ### Input ```=json { "did" : {{ number}}, "keyword" : {{ string }}, "catalog" : {{ number }}, "page" : {{ number }}, "row" : {{ number }} } ``` Column | Type | Require | Desc -----------------|----------|---------|--------- did | number | Y | domain id keyword | String | N | 查詢詞 catalog | number | N | [查詢 catalog id](#resultId) <br> `subscribe catalog2 list api` page | number | Y | 第幾頁`(default 1)` row | number | Y | 每頁幾筆`(default 10)` ### Output - json 內容如下: ```=json { "code" : {{ number }} , // 代碼,0:ok、 < 0: error 使用 "errorMsg" : {{ string }}, // 錯誤訊息 "data" : { "total" : {{ number }} , // 符合條件總筆數 "content" : [ // 內容 { "companyName" : {{ string }} , // 公司名稱 "cid" : {{ number }} // 公司 id }, ], "pageable" : { // 頁碼區塊 "page" : {{ number }} , // 第幾頁 "size" : {{ number }} // 每頁幾筆 } } } ``` #### 輸出參數說明 | 欄位名稱 | 欄位說明 | 型態 | | -------- | -------- | -------- | | total | 符合條件總筆數 | int | | content | 內容 | [`內容(Array<Object>)`](#content) | | pageable | 頁碼區塊 | [`頁碼區塊(Object)`](#pageable) | <span id="content">`content`</span> | 欄位名稱 | 欄位說明 | 型態 | | -------- | -------- | -------- | | companyName | 公司名稱 | String | | cid | 公司 id | int | <span id="pageable">`pageable`</span> | 欄位名稱 | 欄位說明 | 型態 | | -------- | -------- | -------- | | page | 第幾頁 | int | | size | 每頁幾筆 | int | ### 實際範例 <details> <summary> Search by Catalog - Input(Click to Show/Hide Output) ```=json { "catalog": 3, "did": 2, "keyword": "", "page": 1, "row": 10 } ``` </summary> Search by Catalog - Output ```=json { "code": 0, "errorMsg": "", "data": { "total": 3222, "content": [ { "companyName": "MEXA CO., LTD.", "cid": 10 }, { "companyName": "NIEH CHUANG INDUSTRIAL CO., LTD.", "cid": 127 }, { "companyName": "COIN CHEMICAL INDUSTRIAL CO., LTD.", "cid": 157 }, { "companyName": "STANDARD HANGERS INDUSTRIAL CO.", "cid": 177 }, { "companyName": "SUNSHINY ENTERPRISE CO., LTD.", "cid": 189 }, { "companyName": "WORLDWIDE CHEMICAL CO., LTD.", "cid": 205 }, { "companyName": "TAIWAN BASIN INDUSTRIAL CORPORATION", "cid": 214 }, { "companyName": "CHUNG TAI RUBBER GOODS. MFG. CO., LTD.", "cid": 252 }, { "companyName": "HING LUNG TRADING CO., LTD.", "cid": 267 }, { "companyName": "KAUNG JENN CO., LTD.", "cid": 271 } ], "pageable": { "page": 1, "size": 10 } } } ``` </details> <details> <summary> Search by Keyword - Input(Click to Show/Hide Output) ```=json { "catalog": null, "did": 2, "keyword": "Robot", "page": 1, "row": 10 } ``` </summary> Search by Keyword - Output ```=json { "code": 0, "errorMsg": "", "data": { "total": 10, "content": [ { "companyName": "HI-MORE ROBOT CO., LTD.", "cid": 6516 }, { "companyName": "ROBOTEC MACHINERY COMPANY", "cid": 98007 }, { "companyName": "KUKA ROBOT AUTOMATION TAIWAN CO., LTD.", "cid": 137396 }, { "companyName": "PLAYROBOT INC.", "cid": 157956 }, { "companyName": "ROBOTECH ENT ENTERPRISE CO., LTD.", "cid": 162652 }, { "companyName": "YEN DAI ROBOT CO., LTD.", "cid": 172420 }, { "companyName": "ATE-ROBOT", "cid": 320599 }, { "companyName": "EMEME ROBOT CO., LTD.", "cid": 338795 }, { "companyName": "TECHMAN ROBOT INC.", "cid": 664632 }, { "companyName": "ROBOTELF TECHNOLOGIES CO., LTD.", "cid": 666966 } ], "pageable": { "page": 1, "size": 10 } } } ``` </details> ## supplier alert save api -https://www.taiwantrade.com/taiwantradeAlert/subscribeByCompanies?email=user@hyweb.com.tw&companies=68,4&did=2&languageId=42 ### 規格 - path : ${TT-API網址}/subscriptions/company-save - method : POST - query : ### API 邏輯 - 儲存公司訂閱條件 ### Input ```=json { "email" : {{ string}}, "companies" : {{ string }}, "did" : {{ number }}, "method" : {{ string }} } ``` Column | Type | Require | Desc -----------------|----------|---------|--------- email | string | Y | 訂閱 email companies | string | Y | 訂閱那些公司,以逗號分隔 did | number | Y | domain id method | string | Y | 儲存方式<br> `ADD` 依照參數逐筆新增 <br> `EDIT` 依照參數直接替換 ### Output - json 內容如下: ```=json { "code" : {{ number }} , // 代碼,0:ok、 < 0: error 使用 "errorMsg" : {{ string }}, // 錯誤訊息 "data" : null } ``` ### 實際範例 <details> <summary> Input(Click to Show/Hide Output) ```=json { "companies": "172420,162652", "did": 2, "email": "hans.hsu@hyweb.com.tw", "method": "EDIT" } ``` </summary> Output ```=json { "code": 0, "errorMsg": "", "data": null } ``` </details>