如何利用 Sitata API 判断旅客的旅行限制
可能很多人不知道,Sitata 的早期基础是为疾病早期预警而构建的。事实上,我们的创始人在 2016 年就做过一场 TEDx 演讲,主题正是为何需要警示旅客以帮助预防疾病传播。因此,当 2019 年 12 月初 COVID-19 被报告为异常聚集性肺炎病例时,我们迅速关注到这一情况也就不足为奇了。到 2020 年 1 月 2 日,我们的健康团队决定向旅客和商业伙伴发布首次预警。这甚至比世界卫生组织的行动还早了数日!
在这场不可避免的危机中,我们突然意识到:疫情扩散如此迅速,全球应对措施势必陷入混乱。各国都将出台各自的控制传播法规,这必然给全球旅行带来巨大困扰,也让仍想出行的人们感到无比困惑。事实证明我们是对的,于是我们决定采取行动。Sitata 是全球首批针对 COVID-19 导致的旅行限制和入境要求变化,推出专用 API 与监测服务的公司之一。凭借先进的事件检测软件系统和专业分析师团队,我们已具备实施这项服务所需的所有工具和流程。
自推出这项新服务以来,已有包括 Eddy Travels、Flight Centre 和 Etihad Airways 在内的多家机构利用这些数据为其客户提供便利,更多合作方即将公布!为帮助更多旅游相关机构从这项服务中受益,我们将在下文详细列举多个示例,阐释如何将 API 应用于不同场景。希望这些说明能助您顺利启动自己的项目。
入境要求
毫无疑问,旅客最先提出的问题总是“我能去那里吗?”和“需要隔离吗?”,因此从这里入手最为合适。我们创建的入境要求数据集正是为了回答关于进入某个国家或地区的硬性“是/否”类问题。
截至本文撰写时,该数据集包含以下 10 个独立类别:
- 该国居民能否入境?
- 外国人能否入境?
- 是否允许过境该国?
- 抵达时是否需要检测(疾病爆发期间)?
- 是否接受检测证明(疾病爆发期间)?
- 抵达时是否需要隔离(疾病爆发期间)?
- 是否要求疫苗接种?
- 是否要求保险?
- 是否要求检测证明?
- 是否要求填写入境表格(健康或其他类型)?
每个类别可能包含以下值之一:
- 是
- 是(有例外情况)
- 否
- 否(有例外情况)
虽然绝大多数值为“是”或“否”,但实际情况往往更为复杂。有时各国政府会出台非常特殊的规定,这就需要“有例外情况”这类值来体现。
入境要求本质上是一条记录,记载了某个主体对单个或多个其他国家或地区实施的规则。在我们的数据架构中,主体可以是国家、州甚至城市。目前 Sitata 主要覆盖国家层面数据,但也为美国等特定地区提供了州/省级记录。
任何在 **origin_country_division_id** 或 **origin_country_region_id** 字段下有值的记录,分别对应州级或市级数据。如果您需要更细粒度的数据,请联系我们探讨具体需求。
建议您花些时间查阅我们的 API 文档,熟悉入境要求的数据结构。
数据结构中稍显困惑的是“origin”这个术语。开发者常将其理解为出发地或始发地,但在我们这里它实际指规则制定方——即实施限制的国家或地区。
另请注意受影响国家列表的工作机制:若 affected_countries 为空,应理解为全球性规则,即所有国家均受影响。
示例说明
正如文档所示,API 提供多种数据获取方式。下面我们将介绍几种常见用例。
如何获取两国间的入境要求?
这类请求有两种实现方式。最简单的是使用 **destination** 和 **departure** 参数,它们接受 ISO 3166-1 alpha-2 代码作为输入。
GET https://www.sitata.com/api/v2/entry_requirements?departure=DE&destination=IN
响应将包含旅客从出发国前往目的地国所需了解的所有要求(国家与州级层面)。
如何获取州级数据?
Sitata 确实为特定地区提供州级数据。当 **origin_country_division** 字段有值时,即表示该条目为州级数据。您也可使用 **destination_country_division** 参数筛选州级数据,该参数需要 ISO_3166-2 值(例如美国德克萨斯州为 US-TX)。
GET https://www.sitata.com/api/v2/entry_requirements?departure=DE&destination_country_division=IN-AP
注意:先按国家查询再筛选州级数据可能更简便,可据此判断是否存在此类数据并加以利用。
如何获取两机场间的入境要求?
与国家查询类似,Sitata API 支持机场间查询。参数 departure_airport 和 destination_airport 使用 ICAO 或 IATA 代码筛选结果。响应将包含旅客从对应出发国前往目的地国所需了解的所有限制(国家与州级层面)。
GET https://www.sitata.com/api/v2/entry_requirements?departure_airport=MUC&destination_airport=BOM
响应将包含旅客从出发国前往目的地国所需了解的所有限制(国家与州级层面)。
如果只有城市信息怎么办?
为避免冲突和混淆,Sitata 未支持按城市名称查询,而是采用经纬度坐标查询以确保结果明确性。相关参数为 departure_lat、departure_lng、destination_lat 和 destination_lng。
GET https://www.sitata.com/api/v2/entry_requirements?departure_lat=48.13743&departure_lng=11.57549&destination_lat=19.0760&destination_lng=72.8777
若您将城市解析为坐标位置进行查询,API 将返回旅客从出发国前往目的地国所需了解的所有限制(国家与州级层面)。
扩展数据
部分入境要求类型可能在名为 extras 的元数据字段中包含额外关联数据。该字段以键值对形式存储特定要求的各类补充信息。
如何获取隔离天数?
此类数据属于入境要求 类型 5。在该条目中,**extras** 映射将包含 quarantine_days 字段,其整数值表示规定的隔离天数。
入境前阴性检测证明的有效时长?
此类数据属于入境要求 类型 8。在该条目中,**extras** 映射将包含 entry_hours 字段,其整数值表示阴性检测证明在入境前被认可的小时数。
欢迎反馈
我们相信这套完善的系统能满足您帮助旅客了解行程中可能遇到情况的所有需求。如果您有我们尚未覆盖的特殊用例,请务必告知我们!
未完待续!
本文是系列文章的第一部分,主要介绍如何通过 Sitata API 获取入境要求与旅行限制信息。目前我们讨论了入境要求——即进入某个国家或地区必须满足的硬性“是/否”类要求,但尚未涉及国家内部的情况。了解能否进入一个国家是一回事,掌握国内能否自由通行、海滩是否开放或是否存在宵禁则是另一回事。
敬请期待第二篇文章,我们将深入探讨旅行限制数据集。提示:其结构与本文高度相似,您随时可以查阅API 文档先行了解。