看板 Soft_Job 關於我們 聯絡資訊
先感謝之前 PO 在這邊後得到不少板友的意見 5/7 時交通部 PTX 通知台鐵升級 v3 版 API 這下可不得了,它升級後把車站代碼全換了一套 {id:"1001", v3id:"0900", name: "基隆"}, {id:"1005", v3id:"0960", name: "汐止"}, {id:"1031", v3id:"0970", name: "汐科"}, {id:"1006", v3id:"0980", name: "南港"}, {id:"1007", v3id:"0990", name: "松山"}, {id:"1008", v3id:"1000", name: "台北"}, . . . id 是舊版,v3id 是新版 新舊版都是數字,都是四碼,有重複的號碼,目前無從自動判斷 原本用車站代碼來當索引寫的程式全部要重改 現在我先製作了轉換車站代碼的兩個程式 rocptx.tra.v2Sv3("1008") //執行完會得到 "1000" 將台北站代碼轉成 v3 版 rocptx.tra.v3Sv2("0990") //執行完會得到 "1007" 將松山站代碼轉成 v2 版 然後暫時把 v3 版的 Function 放在 rocptx.tra.v3 底下呼叫 可以先用 v2Sv3 把舊版車站代碼轉成新版後傳入 v3 的 Function 內 再將收到的 StationID 用 v3Sv2 轉回舊版 id 讓原本的程式使用 想請教板友,通常遇到這種資料源把用來當索引的代碼全部大改時 在 library 這邊開發會怎麼處理? 1. library 維持全用舊的代碼呼叫,底層實作時再全部進行轉換,收到的回應內容 也把 StationID 全部轉成舊版代碼再 return 給呼叫者 這樣用戶完全不需要改 code 可以無痛升級繼續用 v3 API 2. library 分成 v2 跟 v3 切開來,車站列表資料即使內容相同只有 id 不同 也要建立兩份,然後只提供 id 轉換 Function,讓用戶自己呼叫的時候 用轉換 Function 把 id 轉成對應 v2 或 v3 版的 也就是舊版不動,新版要用自己把所有車站代碼轉換後呼叫新版 v3 Function 3. library 跟著 API 升級,把所有車站代碼都換成新的,強制用戶跟著重寫 code 所有用 v2 代碼操作的 code 都要過 v2Sv3 的 Function 轉換後才能正常操作 尷尬的是 PTX 這邊 v3 版車站代碼改了 可是台鐵提供的固定時刻表資料 XML 及 JSON 仍然用的是舊版代碼 所以要操作離線查詢(從 JSON 檔中查時刻表)只能用舊版代碼 另外目前有些車站(如彰化)在 v3 API 線上查不到車站資料,已回報請官方修復 有需要操作或玩 v3 版 API 者請更新 dist 內的 ptx.js 或 ptx.min.js https://github.com/melixyen/rocptx -- [LINE 台幣匯率機器人] https://line.me/R/ti/p/sCsZnuBg5V 即時台銀匯率,可計算退稅價格,出國血拼直接輸入貨架金額查詢退稅後台幣價。 打招呼會告訴你使用說明 日幣就會將匯率切成日幣模式 之後打數字就會自動轉換 =============================================================== [接軌時刻] http://melixyen.github.io/railtime/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.234.11 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1557512040.A.9EC.html ※ 編輯: shter (118.166.234.11), 05/11/2019 02:15:24
vn509942: 感謝分享 05/11 02:52
vi000246: 先用過渡方案吧 哪知道會不會再改 05/11 10:28
ccvs: 感謝分享 05/11 17:36
ccvs: 說不定反應後 他們代碼又改啊 05/11 17:36