This is an auto-generated translation

输入提示白标模板 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:改变建议结果的计算。值包括 hierarchynearby_airportpostal_code
  • line_of_business:此参数提供搜索启发式方法,有效值可确保响应更加相关。请参阅下面的允许值表以了解可用选项。

可选

  • type:描述用户正在寻找的地点。此参数可以多次提供,并带有不同的值(例如,type=AIRPORT&type=CITY)。如果未提供,则默认将包括所有类型。请参阅下面的允许值表以了解可用选项。
  • region_id:将结果过滤为具有指定区域的属性。
  • origin:指定查询文本是否是起点而非终点。默认搜索将仅查找目的地。
  • package_type:按用户指定的包裹类型进行过滤。请参阅下面的允许值表以了解可用选项。
  • limit:指定响应返回的最大建议数。该值必须介于 1 和 10 之间(例如,limit=5)。如果未提供此参数,则默认值为 10。

允许值

typeline_of_businesspackage_type
airportproperties (默认)flight_property
cityflightsflight_property_car
multi_city_vicinitypackagesflight_car
neighborhoodcarsproperty_car
point_of_interestactivities 
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 或其他测试软件来了解示例和模式定义与实际输出的比较。


您觉得这个页面有用吗?
我们该如何改进这些内容?
感谢您帮助我们改进!