Recuperar dados estáticos propriedade
A SDP (Plataforma de Dados Estáticos) fornece vários tipos de dados estáticos que não mudam com frequência, como IDs, nomes, descrições, endereços, comodidades e muito mais.
Uma forma de utilizar esta plataforma é hospedar esses dados localmente, atualizá-los regularmente e recorrer às APIs de hospedagem apenas para dados voláteis, como disponibilidade e preço. Fazendo isso, você pode reduzir as chamadas à API em tempo real e melhorar o desempenho do seu aplicativo.
Esta página demonstra como recuperar a lista de IDs acessíveis propriedade e as informações de localização dessas propriedades usando a API DownloadURL do SDP. Para obter detalhes sobre como acessar outros dados estáticos compatíveis com o SDP, você pode encontrar mais informações aqui.
Recupere os IDs Expedia propriedade acessíveis da API DownloadURL do SDP
GetFeedDownloadUrlOperationParams getPropertyIdListParams =
GetFeedDownloadUrlOperationParams.builder()
// Use the type LISTINGS to get the list of accessible property IDs.
.type(GetFeedDownloadUrlOperationParams.Type.LISTINGS)
// Without any filters, this operation will return the information of all lodging
// properties in en_US by default.
.build();
GetFeedDownloadUrlOperation getFeedDownloadUrlOperation =
new GetFeedDownloadUrlOperation(getPropertyIdListParams);
Response<PresignedUrlResponse> downloadUrlListingsResponse =
client.execute(getFeedDownloadUrlOperation);
// Get the download URL from the response.
String listingsDownloadUrl = downloadUrlListingsResponse.getData()
.getBestMatchedFile()
.getDownloadUrl();O link para download aponta para um arquivo zip contendo vários arquivos JSONL. Cada linha nos arquivos jsonl contém um objeto JSON representando um propriedade.
Exemplo de linha JSON do arquivo LISTINGS (o campo propertyId.expediaé o ID Expedia propriedade):
{
"propertyId": {
"expedia": "1234567",
"hcom": "123456789",
"vrbo": "123.1234567.7654321"
},
"bookable": {
"expedia": true,
"hcom": true,
"vrbo": true
},
"propertyType": {
"id": 16,
"name": "Apartment"
},
"lastUpdated": "10-27-2024 13:41:16",
"country": "France",
"inventorySource": "vrbo",
"referencePrice": {
"value": "89.52",
"currency": "USD"
},
"vrboPropertyType": {
"instantBook": true
}
}Os IDs propriedade recuperados do arquivo LISTINGSpodem ser usados para chamar a API de Listagens de Hospedagem. Você pode ver um exemplo de como obter o conteúdo, os preços e a disponibilidade de propriedades na Pesquisa de ID propriedade.
No entanto, as propriedades do Vrbo que NÃO são instant-bookable NÃO estão acessíveis nos anúncios de hospedagem por enquanto.********
No arquivo LISTINGS, você pode identificar propriedades do Vrbo verificando se os campos propertyId.vrboestão vazios e filtrá-los pelo campovrboPropertyType.instantBook.
Recuperar IDs Vrbo propriedade da API SDP DownloadURL
GetFeedDownloadUrlOperationParams getPropertyIdListParams =
GetFeedDownloadUrlOperationParams.builder()
// Use the type VACATION_RENTAL to get the list of accessible Vrbo property IDs.
.type(GetFeedDownloadUrlOperationParams.Type.VACATION_RENTAL)
// Without any filters, this operation will return the information of all Vrbo
// properties in en_US by default.
.build();
GetFeedDownloadUrlOperation getFeedDownloadUrlOperation =
new GetFeedDownloadUrlOperation(getPropertyIdListParams);
Response<PresignedUrlResponse> downloadUrlVacationRentalResponse =
client.execute(getFeedDownloadUrlOperation);
// Get the download URL from the response.
String vacationRentalDownloadUrl = downloadUrlListingsResponse.getData()
.getBestMatchedFile()
.getDownloadUrl();Semelhante ao arquivo LISTINGS, o URL de download aponta para um arquivo zip contendo arquivos jsonl, em que cada linha contém um objeto JSON representando um Vrbo propriedade.
Um exemplo de linha JSON do arquivo VACATION_RENTAL (o campo propertyId.expediaé o ID da Expedia para este Vrbo propriedade):
{
"propertyId": {
"expedia": "1234567",
"hcom": "987654321",
"vrbo": "123.1234567.7654321"
},
"country": "France",
"propertySize": {
"measurement": 441,
"units": "SQUARE_FEET"
},
"maxOccupancy": 4,
"bathrooms": {
"numberOfBathrooms": 1
},
"bedrooms": {
"numberOfBedrooms": 2
},
"houseRules": {
"partyOrEventRules": {
"partiesOrEventsPermitted": false,
"ownerPartyFreeText": "No events allowed"
},
"smokingRules": {
"smokingPermitted": false,
"ownerSmokingFreeText": "Smoking is not permitted"
},
"petRules": {
"petsPermitted": true,
"ownerPetsFreeText": "Pets allowed"
},
"childRules": {
"childrenPermitted": true,
"ownerChildrenFreeText": "Children allowed: ages 0-17 "
}
},
"propertyManager": {
"name": "Résidences Louis",
"hostType": "Professional"
},
"premierHost": true,
"propertyLiveDate": "2022-05-31"
}Os IDs Expedia propriedade recuperados do arquivo VACATION_RENTALpodem ser usados para chamar a API de Cotações de Hospedagem ou a API de Calendários de Disponibilidade de Hospedagem. Você pode ver exemplos de como obter preços e disponibilidade de propriedades em Cotações de hospedagem e Calendário de disponibilidade do Vrbo.
Recupere os nomes e informações de localização dos imóveis.
GetFeedDownloadUrlOperationParams getPropertyLocationParams =
GetFeedDownloadUrlOperationParams.builder()
// Use the type LOCATIONS to get the names and address of accessible properties.
.type(GetFeedDownloadUrlOperationParams.Type.LOCATIONS)
// If you are looking for Vrbo properties specifically, you can also filter the properties by brand.
// .brand(GetFeedDownloadUrlOperationParams.Brand.VRBO)
.build();
GetFeedDownloadUrlOperation getFeedDownloadUrlOperation =
new GetFeedDownloadUrlOperation(getPropertyLocationParams);
Response<PresignedUrlResponse> downloadUrlLocationsResponse =
client.execute(getFeedDownloadUrlOperation);
// Get the download URL from the response.
String locationsDownloadUrl = downloadUrlLocationsResponse.getData()
.getBestMatchedFile()
.getDownloadUrl();A estrutura do arquivo é semelhante à de outros arquivos SDP.
Exemplo de linha JSON do arquivoLOCATIONS:
{
"propertyId": {
"expedia": "1234567",
"hcom": "987654321",
"vrbo": "123.1234567.1234567"
},
"propertyType": {
"id": 16,
"name": "Apartment"
},
"propertyName": "Property Name",
"address1": "",
"address2": "",
"city": "Newark",
"province": "Delaware",
"country": "United States",
"postalCode": "19711",
"geoLocation": {
"latitude": "10.999999",
"longitude": "-10.999999",
"obfuscated": false
},
"locationAttribute": {
"neighborhood": {
"id": "553248635976468695",
"name": "Westmoreland"
},
"city": {
"id": "8946",
"name": "Newark"
},
"region": {
"id": "6055689",
"name": "North Wilmington"
},
"airport": {
"id": "6028579",
"code": "ILG",
"name": "Wilmington, DE (ILG-New Castle)",
"distance": "13.17",
"unit": "km"
},
"distanceFromCityCenter": {
"distance": "1.24",
"unit": "km"
}
}
}Neste ponto, você pode combinar o nome e as informações de localização de propriedade com os IDs de propriedade para construir seu cache local.
O uso flexível do SDP pode ajudar a reduzir o número de chamadas em tempo real para as APIs de hospedagem e economizar custos. Você também pode usar os dados para construir seu próprio mecanismo de busca ou sistema de recomendação.