输入提示白标旅游平台 API
在旅行者搜索时,为他们提供建议
Typehead (GET /suggestions) 是一个新的 API 端点,可让您根据地理区域、相关位置和可用房源,为您的旅行者提供建议性的搜索体验。此端点根据部分搜索字符串和用户输入的任何请求参数返回建议列表。请联系您的客户经理,将输入提示添加到您的帐户。
如何操作
输入提示 API 是一个语言预测工具——有时被称为自动完成或自动建议。它会根据在搜索框中输入的部分信息,返回区域、地点或属性的列表。当用户在搜索框中输入内容时,输入提示 API 将开始使用城市、地区、房产或邮政编码信息返回最多 10 个结果。旅行者可以从该列表中选择以开始搜索,或者继续输入以继续优化自动建议的结果。
例如,以“Memp”开头的搜索将会看到几个地理位置选项,包括与美国田纳西州孟菲斯相关的社区、火车站、机场等,以及与美国密苏里州孟菲斯相关的选项。
启动指南
您需要联系您的客户经理、技术客户经理 (TAM) 或合作伙伴解决方案经理 (PSM) 以了解有关 API 的信息。他们会请求访问权限批准,如果获得批准,他们会修改你的协议,将输入提示添加到协议中。一旦您的组织启用了输入提示,您的 TAM 或 PSM 将为您提供任何必要的开发支持。
上线要求:
- 您必须采用和使用不透明访问令牌流程进行身份验证。
- 访问令牌只能由请求该令牌的同一电路 ID 或 API 密钥使用。
- 访问令牌的有效期仅为 25 分钟。
- 请求新的访问令牌应该按照既定的时间表持续刷新,而不应该更新得过于频繁。
- 语言和请求文本是必需参数。查看白标旅游平台支持的语言列表。
授权和访问
已升级到版本 3 的合作伙伴可以通过 API 端点请求输入提示 API。审核通过后,我们将为您创建一个新个人资料,并授予您成功使用 API 所需的权限。
建立授权
使用输入提示 API 进行身份验证需要访问密钥。使用授权标头,您将提供您的 apikey 来调用 EPS 网关以获取访问密钥。然后,您可以通过将访问密钥作为授权标头传递来调用输入提示 API 端点。
示例:以 base64 格式编码 API 密钥
var api_key = postman.getEnvironmentVariable("api_key");
var shared_secret= postman.getEnvironmentVariable("shared_secret");
var base64Hash = CryptoJS.enc.Utf8.parse(api_key + ":" + shared_secret);
var base64 = CryptoJS.enc.Base64.stringify(base64Hash);
postman.setEnvironmentVariable("base64",base64);获取不透明访问令牌
使用输入提示 API 需要不透明的访问令牌(不包含任何关于用户或资源的信息)。
样品请求
POST – https://api.ean.com/identity/oauth2/v3/token
Header:
Key: ‘Authorization’
Value: ‘Basic {base64}’示例响应
{
"access_token": "p1xy6rxahicQPUIX_Sq6a52yFnHXpX3ImaSX9sKiUI4:XM8qZiTr1HPDc8FgBE5HLvFTFdICuRFV0-l7gFWI-WU",
"token_type": "bearer",
"expires_in": 1800,
"scope": "demand-solutions.demand-api-wrappers-playground.all"
}发起自动完成请求
您需要在请求标头和查询参数中包含一些必需信息。为了使响应更加可靠,您还可以包含可选的查询参数。
请求标头
是否必需
Accept:指定客户端希望收到的响应格式。该值必须为application/json。Accept-Encoding:指定客户端希望接收的响应编码。该值必须为gzip。User-Agent:客户请求中的标头字符串,由您的集成捕获。如果您正在构建应用程序,则User-Agent的值应该是{app name}/{app version}。例如,TravelNow/3.30.112。
查询参数
是否必需
language: 指定响应所需的语言为 BCP47 格式的子集,该子集仅使用 two-digit 语言和国家代码的连字符对。仅使用 ISO639-1 alpha 2 语言代码和 ISO3166-1 alpha 2 国家/地区代码,如 w3.org 所述(例如,language=en-US)。请参阅支持的语言列表。text要查询的输入字符串,限制为 150 个字符(例如,text=Springfie)。feature:改变建议结果的计算方式。值包括hierarchy、nearby_airport和postal_code。line_of_business此参数提供搜索启发式方法,有效值可确保响应更具相关性。请参阅下面的“允许值”表格,了解可用选项。
可选
type:描述用户正在查找的地方。此参数可以多次提供,并具有不同的值(例如,type=AIRPORT&type=CITY)。如果没有指定,则默认值将包含所有类型。请参阅下面的“允许值”表格,了解可用选项。region_id:筛选结果,只保留指定区域的属性。origin:指定查询文本是来源还是目标。默认搜索只会找到目的地。package_type:按用户指定的包类型进行筛选。请参阅下面的“允许值”表格,了解可用选项。limit:指定响应返回的最大建议数量。该值必须介于 1 和 10 之间(例如,limit=5)。如果未提供此参数,则默认值为 10。
允许值
| type | line_of_business | package_type |
|---|---|---|
airport | properties (默认) | flight_property |
city | flights | flight_property_car |
multi_city_vicinity | packages | flight_car |
neighborhood | cars | property_car |
point_of_interest | activities | |
airport_metro_code | ||
multi_region | ||
train_station | ||
metro_station | ||
address | ||
property | ||
bus_station |
任何未包含在上表中的值都会导致错误。
数据请求
一旦你拥有了access_token您将设置GET要求。
样品请求
GET - https://api.ean.com/v3/suggestions?language=en-US&line_of_business=properties&limit=3&text=chicago&type=city&type=neighborhood
Header :
Authorization: Bearer {{access_token}}示例响应
[
{
"related_id": "4477519",
"type": "airport",
"name": "Chicago, IL (ORD-O'Hare Intl.)",
"name_full": "Chicago, IL, United States of America (ORD-O'Hare Intl.)",
"name_display": "<B>Chicago</B>, IL, United States of America (ORD-O'Hare Intl.)",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "ORD",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.976977,
"longitude": -87.90481
}
},
{
"related_id": "829",
"type": "city",
"name": "Chicago",
"name_full": "Chicago, Illinois, United States of America",
"name_display": "<B>Chicago</B>, Illinois, United States of America",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "CHI",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.878113,
"longitude": -87.629799
}
},
{
"related_id": "6350699",
"type": "neighborhood",
"name": "Downtown Chicago",
"name_full": "Downtown Chicago, Chicago, Illinois, United States of America",
"name_display": "Downtown <B>Chicago</B>, <B>Chicago</B>, Illinois, United States of America",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "CHI",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.885969845574834,
"longitude": -87.62933540465228
}
}
]API 详情
查看此页面上相关的端点定义,然后使用 API Explorer 或其他测试软件来了解示例和模式定义与实际输出的比较。