先不论何种做法
正常公司转换版本时
推出新版本旧版本会支援一定的时间
过了时间后就不support了
也就是按照正常流程来看
现在直接做一个v3版本
推荐尚未开发的使用者使用
v2版本帮忙做个更新
让已开发使用者有时间做版本转换
到一定时间后公告不更新自求多福
时间多久就看自己有多闲了
※ 引述《shter (飞梭之影)》之铭言:
: 先感谢之前 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