API de autocompletado para una plataforma de viajes de marca blanca
Ofrece sugerencias a los viajeros mientras buscan
Typehead (GET /suggestions) es un nuevo punto de acceso de la API que te permite ofrecer a los viajeros una experiencia de búsqueda sugerente basada en regiones geográficas, ubicaciones relevantes y alojamientos disponibles. Este punto final devuelve una lista de sugerencias basadas en cadenas de búsqueda parciales y en los parámetros de solicitud que hayas introducido. Ponte en contacto con tu gestor de cuentas para añadir Typeahead a tu cuenta.
Funcionamiento
La API Typeahead es una herramienta de predicción de texto, que a veces se conoce como «autocompletado» o «sugerencias automáticas». Devuelve una lista de regiones, ubicaciones o propiedades en función de la información parcial que se introduzca en el cuadro de búsqueda. Cuando el usuario escriba en el cuadro de búsqueda, la API de Typeahead empezará a mostrar hasta 10 resultados basándose en la información de la ciudad, la región, la propiedad o el código postal. El viajero puede entonces elegir una opción de esta lista para iniciar su búsqueda o seguir escribiendo para seguir afinando los resultados sugeridos automáticamente.
Por ejemplo, si escribes «Memp» al empezar a buscar, te aparecerán varias opciones geográficas, como barrios, estaciones de tren, aeropuertos, etc., relacionadas con Memphis (Tennessee, EE. UU.), seguidas de Memphis (Misuri, EE. UU.).
Guía de inicio
Tendrás que ponerte en contacto con tu gestor de cuentas, tu gestor técnico de cuentas (TAM) o tu gestor de soluciones para socios (PSM) para obtener más información sobre la API. Te pedirán que les des tu autorización y, si te la conceden, modificarán tu contrato para incluir Typeahead. Una vez que se haya activado Typeahead en tu organización, tu TAM o PSM te ayudará con cualquier desarrollo que sea necesario.
Requisitos de lanzamiento:
- Tienes que adoptar y utilizar el proceso de token de acceso opaco para la autenticación.
>> Más información sobre cómo obtener un token de acceso opaco - Los tokens de acceso solo los puede usar el mismo ID de circuito o la misma clave API que los solicitó.
- Los tokens de acceso solo duran 25 minutos.
- Las solicitudes de nuevos tokens de acceso deben configurarse para que se actualicen de forma constante según ese calendario, sin que las actualizaciones sean demasiado frecuentes.
- El idioma y el texto de la solicitud son parámetros obligatorios.
>> Consulta la lista de idiomas compatibles con la plataforma de viajes de marca blanca
Autorización y acceso
La API de Typeahead está disponible para que los socios que se hayan incorporado a la versión 3 puedan realizar solicitudes a través de los puntos de acceso de la API. Una vez aprobado, te crearemos un nuevo perfil con los permisos necesarios para que puedas utilizar la API sin problemas.
Establecer la autorización
Para autenticarte en la API de Typeahead necesitas una clave de acceso. Mediante un encabezado de autorización, tendrás que proporcionar tu apikey para llamar a la pasarela EPS y obtener una clave de acceso. A continuación, puedes llamar al punto final de la API de Typeahead pasando la clave de acceso como encabezado de autorización.
Ejemplo: Codificar la clave de la API en formato base64
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);Consigue un token de acceso opaco
Para usar la API de Typeahead se necesita un token de acceso opaco, es decir, uno que no contenga ninguna información sobre el usuario ni sobre el recurso.
Solicitud de muestra
POST – https://api.ean.com/identity/oauth2/v3/token
Header:
Key: ‘Authorization’
Value: ‘Basic {base64}’Ejemplo de respuesta
{
"access_token": "p1xy6rxahicQPUIX_Sq6a52yFnHXpX3ImaSX9sKiUI4:XM8qZiTr1HPDc8FgBE5HLvFTFdICuRFV0-l7gFWI-WU",
"token_type": "bearer",
"expires_in": 1800,
"scope": "demand-solutions.demand-api-wrappers-playground.all"
}Envía una solicitud de autocompletado
Tendrás que incluir cierta información obligatoria en los encabezados de la solicitud y en los parámetros de consulta. Para que la respuesta sea más sólida, también puedes incluir parámetros de consulta opcionales.
Encabezados de solicitud
Obligatorio
Accept: especifica el formato de respuesta que el cliente quiere recibir. Este valor debe serapplication/json.Accept-Encoding: especifica la codificación de la respuesta que el cliente quiere recibir. Este valor debe sergzip.User-Agent: una cadena de encabezado de la solicitud del cliente, tal y como la ha captado tu integración. Si estás desarrollando una aplicación, el valor de «User-Agent» debería ser{app name}/{app version}. Por ejemplo,TravelNow/3.30.112.
Parámetros de consulta
Obligatorio
language: especifica el idioma deseado para la respuesta como un subconjunto del formato BCP47 que solo utiliza pares separados por un guion de códigos de idioma y país de two-digit. Utiliza únicamente los códigos de idioma ISO 639-1 alfa-2 y los códigos de país ISO 3166-1 alfa-2 tal y como se describen en w3.org (por ejemplo,language=en-US).
>> Ver la lista de idiomas disponiblestext: la cadena de entrada que se va a consultar, con un límite de 150 caracteres (por ejemplo,text=Springfie).feature: cambia la forma de calcular los resultados de las sugerencias. Entre los valores se incluyenhierarchy,nearby_airportypostal_code.line_of_business: Este parámetro proporciona heurísticas de búsqueda, y un valor válido garantiza que la respuesta sea más relevante. Echa un vistazo a la tabla de valores permitidos que aparece a continuación para ver las opciones disponibles.
Opcional
type: describe el lugar que el usuario está buscando. Este parámetro se puede especificar varias veces con valores diferentes (por ejemplo,type=AIRPORT&type=CITY). Si no se indica, los valores por defecto sonairport,city,multi_city_vicinity,neighborhood,point_of_interestyairport_metro_code. Para más información, consulta la tabla de valores permitidos que aparece a continuación.region_id: filtra los resultados para mostrar solo las propiedades de la región especificada.origin: indica si el texto de la consulta es un origen en lugar de un destino. La búsqueda predeterminada solo mostrará destinos.package_type: filtra según los tipos de paquetes que el usuario especifique. Echa un vistazo a la tabla de valores permitidos que aparece a continuación para ver las opciones disponibles.limit: especifica el número máximo de sugerencias que devuelve la respuesta. Este valor debe estar entre 1 y 10 (por ejemplo,limit=5). Si no se indica este parámetro, el valor por defecto es 10.
Valores permitidos
| type | line_of_business | package_type |
|---|---|---|
airport | properties (por defecto) | 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 |
Cualquier valor que no aparezca en la tabla anterior dará lugar a un error.
Solicitud de datos
Una vez que tengas el access_token, tendrás que configurar la solicitud GET.
Solicitud de muestra
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}}Ejemplo de respuesta
[
{
"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
}
}
]Detalles de la API
Explora las definiciones de los puntos de conexión relacionados en esta página y usa API Explorer u otro software de pruebas para ver la diferencia entre los ejemplos y las definiciones de esquemas, y el resultado real.