자동 완성 화이트 라벨 여행 플랫폼용 API
여행자들이 검색할 때 관련 제안을 제공하세요
Typehead(GET /suggestions)는 지리적 지역, 관련 장소 및 이용 가능한 숙박 시설 를 기반으로 여행객에게 추천 검색 기능을 제공할 수 있게 해주는 새로운 API 엔드포인트입니다. 이 엔드포인트는 부분 검색어와 사용자가 입력한 요청 매개변수를 바탕으로 제안 목록을 반환합니다. 계정에 자동 완성를 추가하시려면 담당 계정 관리자에게 문의해 주시기 바랍니다.
작동 방식
자동 완성 API는 언어 예측 도구로, 때로는 자동 완성 또는 자동 제안이라고도 불립니다. 검색창에 입력된 부분 정보를 바탕으로 지역, 위치 또는 숙박 시설 목록을 반환합니다. 사용자가 검색창에 내용을 입력하면, 자동 완성 API는 도시, 지역, 숙박 시설 또는 우편번호 정보를 바탕으로 최대 10개의 검색 결과를 반환하기 시작합니다. 여행자는 이 목록에서 항목을 선택하여 검색을 시작하거나, 계속 입력하여 자동으로 제안된 결과를 더욱 구체화할 수 있습니다.
예를 들어, “Memp”로 시작하는 검색을 하면 미국 테네시주 멤피스와 관련된 동네, 기차역, 공항 등 여러 지리적 옵션이 먼저 표시되고, 그 다음으로 미국 미주리주 멤피스가 나타납니다.
시작 가이드
API에 대해 알아보시려면 담 당 계정 관리자, 기술 계정 관리자(TAM) 또는 파트너 솔루션 관리자(PSM)에게 문의하셔야 합니다. 그들은 접근 권한 승인을 요청할 것이며, 승인이 나면 자동 완성를 포함하도록 귀하의 계약 내용을 수정할 것입니다. 귀사의 조직에서 자동 완성 기능이 활성화되면, 담당 TAM 또는 PSM이 필요한 개발 작업을 지원해 드릴 것입니다.
출시 요구 사항:
- 인증 시 불투명 액세스 토큰 절차를 채택하여 사용해야 합니다.
>> 불투명 액세스 토큰 획득에 대해 자세히 알아보기 - 액세스 토큰은 이를 요청한 것과 동일한 서킷 ID 또는 API 키에서만 사용할 수 있습니다.
- 액세스 토큰의 유효 기간은 25분입니다.
- 새로운 액세스 토큰 요청은 해당 일정에 따라 일관되게 갱신되도록 구성되어야 하며, 너무 빈번하게 업데이트되어서는 안 됩니다.
- 언어와 요청 내용은 필수 입력 항목입니다.
>> 화이트 라벨 여행 플랫폼에서 지원하는 언어 목록 보기
권한 부여 및 접근
버전 3에 등록된 파트너는 API 엔드포인트를 통해 자동 완성 API를 요청할 수 있습니다. 승인이 완료되면, API를 원활하게 사용할 수 있도록 필요한 권한이 부여된 새로운 프로필을 생성해 드리겠습니다.
권한 설정
자동 완성 API에 대한 인증을 위해서는 액세스 키가 필요합니다. 인증 헤더를 사용하여 API 키를 제공하면, EPS 게이트웨이를 호출해 액세스 키를 받을 수 있습니다. 그런 다음, 인증 헤더로 액세스 키를 전달하여 자동 완성 API 엔드포인트를 호출할 수 있습니다.
예시: API 키를 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);불투명한 액세스 토큰 가져오기
자동 완성 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: 응답에 사용될 언어를, 하이픈으로 연결된 ‘ two-digit ’ 언어 코드 및 국가 코드 쌍만을 사용하는 BCP47 형식의 하위 집합으로 지정합니다. 다음에 명시된 대로 ISO 639-1 알파 2 언어 코드와 ISO 3166-1 알파 2 국가 코드만을 사용하십시오. w3.org (예:language=en-US).
>> 지원되는 언어 목록 보기text: 쿼리할 입력 문자열로, 최대 150자까지 입력할 수 있습니다(예:text=Springfie).feature: 추천 결과의 산출 방식을 변경합니다. 값으로는hierarchy,nearby_airport,postal_code등이 있습니다.line_of_business: 이 매개변수는 검색 휴리스틱을 제공하며, 유효한 값을 지정하면 응답의 관련성이 높아집니다. 사용 가능한 옵션은 아래의 ‘허용되는 값’ 표를 참조하십시오.
Optional
type: 사용자가 찾고 있는 장소를 설명합니다. 이 매개변수는 서로 다른 값을 지정하여 여러 번 전달할 수 있습니다(예:type=AIRPORT&type=CITY). 지정되지 않은 경우, 기본값은airport,city,multi_city_vicinity,neighborhood,point_of_interest및airport_metro_code입니다. 자세한 내용은 아래의 ‘허용되는 값’ 표를 참조하십시오.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 또는 다른 테스트 소프트웨어를 사용하여 예시 및 스키마 정의가 실제 출력과 어떤 차이가 있는지 확인해 보세요.