输入提示白标模板 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 语言和国家代码对。仅使用 w3.org 描述的 ISO639-1 alpha 2 语言代码和 ISO3166-1 alpha 2 国家/地区代码(例如,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 或其他测试软件来了解示例和模式定义与实际输出的比较。