APIfy

昨天早晨起床就收到美国旅游巨头产品总监的Follow up邮件,催着要G2Rail的地面交通API和数据,想和G2Rail对接。两周之前有过一个zoom会议,但是因为最近忙于G2Rail新的Serendipity App,一直没有来得及响应。

追着G2Rail要API的原因很简单,因为在玩法传统的旅游圈,G2Rail的API十分Remarkable。短时间内业内玩家根本没有办法模仿或者超越。这也是G2Rail的一类很重要的产品形态

行业痛点

接口众多

欧洲很多国家都有超过多于一家铁路公司,比如英国有28家,瑞士有上百家,意大利会有Trenitalia、Italo还有Flixbus,因为跟其中一家直接对接可能需要花几个月的时间。一家一家接下来,投入产出比很低。

接口定义和流程不统一

不同公司的API设计有很大的不同,无论从接口数量、接口参数设计、预订流程各个方面都不一样。把这些接口定义以及流程标准化是另一部分必须解决的问题。举个例子德国铁路官方API预订车票只需要4个API,而意大利国铁需要8个,意大利法拉利私铁预订流程则需要7步。而单单意大利的搜索接口,可能需要输入几十个参数(比如是否带着自行车、是否抽烟。。。)

业务知识复杂

市场上几个玩家由于是从铁路公司角度思考设计,而不是从API使用者角度设计,因此有很多业务知识泄露到了外面。举一个简单例子,旅客搜索布鲁塞尔到法兰克福,需要到德国铁路公司、法国铁路公司、荷比卢铁路、Flixbus铁路公司查询行程,这类知识其实应该隐藏在API后。但是如果让API的使用者提供所需要具体需要查询的铁路公司就是一件很崩溃的事情,因为从海外旅行社角度(而不是铁路公司圈内人士角度),他们如何知道任意两点直接有那几家铁路公司运营是Mission Impossible的(G2Rail覆盖52个国家超过十万个火车站)。这样的API很难被使用。

还有一件很晕的事情,从德国方向到巴黎的车,抵达的是巴黎东站(Paris Est),而从意大利方向来的车,抵达巴黎里昂门站。但是对于没有去过巴黎的旅客来说,应该不会听说过巴黎有个里昂门站。。。而选错车站,就意味着查不出车票。

数据不统一

全球火车站的编码主要有几类标准,就拿巴黎里昂门站(又称巴黎南站)来说,法国铁路局的编码是FRLYN,德国铁路局的编码是8700012,意大利铁路公司的编码则是8768600。。。尽管这都是指向物理上同一个火车站。对于车站数据的整理就是一件很头大的事情(再联系上面说到的起点和终点直接经常会有多个铁路公司)。还有类似车型数据、票种数据、打折方式、舱位等等。

巴黎里昂门火车站 Paris Gare de Lyon

产品种类众多

针对乘客的年龄、通行人数、出行时间、国籍、列车种类等会有很多不同的票种组合,对于铁路公司来说可能涉及到不同的出票部门、甚至是不同的公司。比如在G2Rail网站搜索超过6个人从法兰克福到柏林的路线,就会有通票(来自于Eurail公司)、点到点车票、团队票、海外旅客票等等。不同票种意味着出票流程、票种(电子票、取票码、需要邮寄的纸质票)、结算周期和方法互相之间有很大不同。

APIfy

G2Rail的一大核心竞争力是把所有这些接口和数据全部标准化、统一化。海外旅行社对接起来无比简单。

API标准化

预订其实只需要Search, Book, Confirm, Download, Refund就能完成所有的铁路公司和票种的预订,复杂的组合、流程完全被隐藏在了API的后面。

数据标准化

首先巴黎里昂门站根本不需要记录各个铁路公司的编码,一个车站编码就可以搜索所有铁路公司。另外其实还有更蠢的方法,只需把车站code设成“PARIS”,就可以搜索从巴黎所有车站发出的列车,而不需要考虑是去德国、意大利、比利时、英国还是西班牙。

覆盖面广

通过一套API(5个)和数据就能搜索52个国家和地区的铁路和大巴班次。复杂导航、标准化、出票、结算全部隐藏到了API后面。

如果希望与G2Rail对接,可以给我发邮件 daniel@g2rail.com

如果希望更深了解G2Rail的APIfy玩法,可以参加我们在台北和中国大陆的《打穿课程

Share