如何使用 Sitata API 确定旅行者的旅行限制
许多人可能不知道,Sitata 最初的基础是为疾病早期检测而构建的。事实上,我们的创始人早在2016年就做过一场TEDx演讲,探讨为何我们需要警示旅行者以预防疾病传播。因此,当我们在2019年12月初获悉一种被报告为“不寻常肺炎病例群”的COVID-19时,并不感到意外。2020年1月2日,我们的健康团队决定必须向我们的旅行者和商业伙伴发出首次警示。这甚至比世界卫生组织还早了几天!
在随之而来的不可避免的余波中,我们有了一个顿悟。这种疾病传播得如此之快,我们清楚地意识到全球的应对充其量将是混乱的。每个国家都将颁布自己的法规和规则来控制传播。这不可避免地将在全球范围内造成严重破坏,并对那些仍希望旅行的人造成巨大的困惑。我们是对的,并决定为此做些什么。Sitata 是全球首批创建专门API和服务,用于追踪因COVID-19而实施的旅行限制和入境条件变化的企业之一。凭借先进的事件检测软件系统和一支专业分析师团队,我们已经拥有了实现这一目标所需的所有工具和流程。
自这项新服务推出以来,已有多个组织利用这些数据为其自身客户谋利,包括 Eddy Travels、Flight Centre 和 Etihad Airways;更多信息即将公布!为了帮助更多专注于旅行的组织从这项服务中受益,我们在下面详细撰写了一些示例,解释如何将API用于各种用例。希望这些解释能帮助您启动自己的计划。
入境条件
旅行者首先提出的问题无疑是:“我能去吗?”和“我会被隔离吗?”,因此这是一个很好的起点。我们创建了入境条件数据集,以回答关于进入一个国家或地区的“是/否”类棘手问题。
截至本文撰写时,该数据集包含以下十个独立类别:
- 居民可以入境吗?
- 外国人可以入境吗?
- 允许过境该国吗?
- 抵达时是否需要检测(出现症状)?
- 是否接受检测证明(出现症状)?
- 抵达后是否需要隔离(出现症状)?
- 是否需要疫苗接种?
- 是否需要保险?
- 是否需要检测证明?
- 是否需要登记表(健康或其他)?
每个类别可以具有以下值之一:
- 是
- 是,但有例外
- 否
- 否,但有例外
虽然绝大多数值是“是”和“否”,但实际情况并不总是那么简单。有时,各国政府会制定一些真正奇怪和疯狂的规则,这就需要“有例外”这类值。
入境条件本质上是一个文档,记录了一个行为体对一个或多个其他国家或地区施加的一系列规则。在我们的数据架构中,行为体可以是一个国家、州甚至一个城市。总体而言,Sitata 目前覆盖国家层面的数据。但是,对于美国等某些地区,我们也有一些州/省级别的记录。
任何在 **origin_country_division_id** 或 **origin_country_region_id** 字段下有值的记录,分别对应州级或市级层面。如果您需要更细粒度的数据,请联系我们,我们可以讨论您的用例。
请花时间通过我们的API文档熟悉入境条件的数据结构。
数据结构中有一个部分可能稍显令人困惑,即我们对 “origin” 一词的使用。这种困惑源于开发者通常认为“origin”是出发地或起点。然而,我们所说的“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 选择不响应针对特定城市名称的查询,因为这可能导致冲突和混淆。相反,我们选择通过经纬度坐标接受API查询,这在我们的结果集中不会产生歧义。参数是 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文档。