# PTX-platform-api 交通部運輸資料流通服務平臺(TDX) API實作 Author: Hsiang-Li Chan (Endy) ##### 系統版本資訊 Ubuntu 22.04.1 LTS jammy Docker version 23.0.0, build e92dd87 VMware® Workstation 16 Pro 16.1.1 build-17801498 ## 1. 事前準備 首先您會需要到 TDX (https://tdx.transportdata.tw ) 取得帳號,帳號角色分為三大類 #### 學研單位 1. 公私立大專院校所屬教職人員、學生 2. 公立學研機構所屬研究人員 #### 學研單位的帳號限制 1. 使用帶有edu或org域名的學研單位所屬電子郵件信箱進行註冊 2. 可註冊至多三把API金鑰 3. 可查詢資料服務 4. 可申請下載歷史資料 #### 公部門會員 1. 中央政府機關 2. 交通部及部屬機關 3. 地方政府機關 #### 公部門帳號限制 1. 使用帶有gov域名的公部門所屬電子郵件信箱進行註冊 2. 可註冊至多三把API金鑰 3. 可查詢資料服務 4. 可申請下載歷史資料 #### 一般會員 1. 個人身份 2. 私人企業 3. 非公務機關之協作單位 #### 一般會員限制 1. 使用合法電子郵件信箱進行註冊 2. 使用edu、org、gov域名信箱無法註冊為一般會員 3. 可註冊至多三把API金鑰 4. 可查詢資料服務 5. 可申請下載歷史資料 ## 2. 帳號申請審核過後 這步驟預計需要2~3天審核,耐心等吧 ## 3. 部署一個API Tester : Hoppscotch ### 3.1 安裝一個Linux (本例使用 Ubuntu 22.04) 其實其他OS應該也可以,雲端或是地端也不限制,本例透過VMware Workstation 為虛擬化程序 ### 3.2 安裝Docker Docker-engine等配套 這步請參照官方文件 ### 3.3 Docker Pull 對應的Image (https://hub.docker.com/r/hoppscotch/hoppscotch) ### 3.4 Dokcer Run docker run --rm --name hoppscotch -p 3000:3000 hoppscotch/hoppscotch:latest ##### 會不會阻擋境外IP ? -->目前使用GCP/AWS 皆可接入 ![IPS](https://cf-content-x.yws.tw/images/not-TW-IP-test.jpg "IP") ![dbip](https://cf-content-x.yws.tw/images/dbip.jpg "dbip") ## 4. 測試細節 ##### API設定細則可以參照: https://github.com/tdxmotc/SampleCode ### 4.1 取得API Key #### 4.1.1 進入TDX網站 登入-->會員中心-->資料服務-->API金鑰-->對應的API Key ![](https://i.imgur.com/QLFN0l7.png) #### 4.1.2 你就會拿到Client ID 跟 Secret (切記要存好) ![](https://i.imgur.com/cnUlMho.png) ### 4.2 部署在 Hoppscotch #### 4.2.1 將Method 選POST,URL由TDX堤供,Content Type 選: x-www-form-urlencoded , Body 需填以下三個欄位,這步可以參考官方Github,按下Send後,會取得Access Token,效期為一天 ##### Hint: 本例發現建議可以將Access Key cache 到本地,這樣就可以減少重複與端點索取金鑰 ![](https://i.imgur.com/TmlD4bU.png) #### 4.2.2 將需要的API填入URL,Method 選GET,Auth 選Bearer 將Access Token 填入,Body 選 json,按下Send 即會回傳需要的API啦~ ![](https://i.imgur.com/9QbrErR.png)