Primeros pasos con la API de actividades de XeniCómo reservar una actividadCómo buscar etiquetas y categorías de actividadesCómo cancelar una reserva de actividadCómo comprobar la disponibilidad de la actividadCómo obtener detalles de la actividadCómo recuperar los detalles de la reserva de actividadesCómo buscar actividades con filtrosCómo buscar destinos de actividadesAPI de alquiler de coches: introducciónAPI de alquiler de coches: comprensión de los campos de respuestaCómo reservar un alquiler de cochesCómo obtener detalles del vehículo de alquiler y complementos de equipoCómo recuperar o cancelar una reserva de alquiler de cochesCómo buscar autos de alquiler disponiblesCómo buscar ubicaciones de recogidaCómo utilizar los filtros de búsqueda de alquiler de cochesMejores prácticas de integración de API de ofertasPreguntas frecuentes sobre la API de ofertasPrimeros pasos con la API de ofertas de XeniReferencia de encabezados y parámetros de solicitud de API de ofertasOfertas API Monedas admitidas y localizaciónCómo mostrar ofertas en su aplicaciónCómo buscar ofertas de hoteles por ubicaciónCódigos de error de la API de vuelos y solución de problemasPrimeros pasos con la API de vuelos de XeniCómo reservar un vueloCómo comprobar la disponibilidad y el precio de los vuelosCómo confirmar o cancelar una reserva de vueloCómo recuperar las reglas de tarifas de un vueloCómo recuperar los detalles de la reserva de un vueloCómo buscar aeropuertos usando AutocompletarCómo buscar vuelosCómo utilizar filtros, clasificación y paginación de búsqueda de vuelosCómo comprobar la disponibilidad y el precio de las habitacionesCómo filtrar los resultados de los alquileres vacacionalesCómo obtener detalles, comodidades y accesibilidad de la propiedad del resortCómo mantener y confirmar una reserva de resortCómo liberar una retención de resortCómo recuperar los detalles de la reserva del resortCómo buscar complejos turísticos disponiblesCómo buscar destinos turísticosCómo buscar ubicaciones de alquiler vacacionalCómo buscar alquileres vacacionalesCómo utilizar filtros de búsqueda y clasificación de complejos turísticosComenzando con la API de Xeni ResortsAPI de Resorts: comprensión de los estados y políticas de las reservasPrimeros pasos con la API de alquileres vacacionalesPreguntas frecuentes sobre alquileres vacacionalesTipos de propiedades admitidas para alquileres vacacionalesComprensión de la búsqueda asincrónica para alquileres vacacionalesAutenticación y firmas APIReserva de hoteles: API directa y pago SSOManejo de errores, límites de tasas y mejores prácticasPrimeros pasos con la API de Xeni HotelesGestión de reservas: estado, recuperación y cancelaciónConfirmación de precios y ciclo de vida del tokenRecuperar detalles del hotel y disponibilidad de habitacionesBúsqueda de hoteles: ubicaciones, filtros y paginaciónBuscando HotelesGestión de sesiones e ID de correlaciónAutenticación API y obtención de claves API

Comprensión de la búsqueda asincrónica para alquileres vacacionales

Última actualización: 2026-03-03

Comprensión de la búsqueda asincrónica para alquileres vacacionales

La API Vacation Rentals admite dos modos de búsqueda: sincrónico y asincrónico. El modo asíncrono devuelve resultados parciales rápidamente mientras los proveedores continúan respondiendo, lo que brinda a los usuarios una experiencia inicial más rápida.

Sincronización frente a modo asíncrono

CaracterísticaSincronización (isasync: false)Asíncrono (isasync: true)
Tiempo de respuesta inicialMás lento (espera a todos los proveedores)Más rápido (devuelve resultados disponibles inmediatamente)
Integridad de la respuestaTodos los resultados en una sola respuestaResultados parciales, que se construyen con el tiempo
Se requiere encuestaNo
Campo de estado"success""in_progress" luego "success"
Lo mejor paraProcesamiento en segundo plano, consultas por lotesUI de búsqueda orientadas al usuario en tiempo real

Cómo funciona el modo de sincronización

Con is_async: false (el valor predeterminado), la API espera a que todos los proveedores devuelvan resultados antes de responder.

JSON
{
  "is_async": false
}

Importante: Cuando se utiliza el modo de sincronización, si la respuesta devuelve status: "in_progress", esto significa que la solicitud expiró antes de que todos los proveedores terminaran. En este caso, debe volver a sondear el punto final con el mismo x-correlation-id para recuperar los resultados completos.

Flujo del modo de sincronización

1. POST /hotels/api/v2/properties/vacation-rentals
   → is_async: false
   ← { status: "success", data: { total: 142, hotels: [...] } }

Done — all results returned.

Cómo funciona el modo asíncrono

Con is_async: true, la API devuelve los resultados que estén disponibles de inmediato. Usted sondea el mismo punto final para obtener resultados actualizados a medida que responden más proveedores.

JSON
{
  "is_async": true
}

Flujo del modo asíncrono

1. POST /hotels/api/v2/properties/vacation-rentals
   → isasync: true, x-correlation-id: corrabc123
   ← { status: "in_progress", data: { total: 45, hotels: [...] } }

Partial results — show these to the user.

  1. POST /hotels/api/v2/properties/vacation-rentals
→ Same body, same x-correlation-id: corr_abc123
← { status: "in_progress", data: { total: 98, hotels: [...] } }

More results — update the UI.

  1. POST /hotels/api/v2/properties/vacation-rentals
→ Same body, same x-correlation-id: corr_abc123
← { status: "success", data: { total: 142, hotels: [...] } }

All results returned — stop polling.

Implementación de encuestas

Cuando utilice el modo asíncrono, implemente un bucle de sondeo que:

  1. Envía la solicitud de búsqueda.
  2. Verifica el campo status en la respuesta.
  3. Si "in_progress", espera brevemente y luego vuelve a enviar la misma solicitud con el mismo ID de correlación.
  4. Si "success", deja de sondear: todos los resultados están disponibles.

Ejemplo de JavaScript

JAVASCRIPT
async function searchVacationRentals(correlationId, searchBody) {
  const url = 'https://uat.travelapi.ai/hotels/api/v2/properties/vacation-rentals?currency=USD&page=1&limit=50&amenities=true';

let status = 'in_progress';
let results = null;

while (status === 'in_progress') {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-correlation-id': correlationId
},
body: JSON.stringify(searchBody)
});

results = await response.json();
status = results.status;

if (status === 'in_progress') {
// Display partial results to the user
displayResults(results.data.hotels);

// Wait 2-3 seconds before polling again
await new Promise(resolve => setTimeout(resolve, 2500));
}
}

// Final results
displayResults(results.data.hotels);
return results;
}

Ejemplo de Python

PYTHON
import requests
import time

def searchvacationrentals(correlationid, searchbody):
url = 'https://uat.travelapi.ai/hotels/api/v2/properties/vacation-rentals'
params = {'currency': 'USD', 'page': 1, 'limit': 50, 'amenities': 'true'}
headers = {
'Content-Type': 'application/json',
'x-correlation-id': correlation_id
}

status = 'in_progress'
results = None

while status == 'in_progress':
response = requests.post(url, params=params, headers=headers, json=search_body)
results = response.json()
status = results['status']

if status == 'in_progress':
print(f"Partial results: {results['data']['total']} properties found so far")
time.sleep(2.5)

print(f"Complete: {results['data']['total']} total properties")
return results

Mejores prácticas de sondeo

PrácticaRecomendación
Intervalo de encuestaEspere 2-3 segundos entre solicitudes
Encuestas máximasEstablecer un límite (por ejemplo, 10 intentos) para evitar bucles infinitos
Mostrar resultados parcialesMostrar los resultados disponibles al usuario mientras continúa la encuesta
Indicador de cargaMuestra un indicador de progreso mientras status es "in_progress"
ID de correlaciónReutilice siempre el mismo x-correlation-id de la respuesta de autocompletar

Elegir el modo correcto

Caso de usoModo recomendado
Página de búsqueda orientada al usuarioAsync: muestra los resultados a medida que llegan
Integración de API a APISincronización: implementación más sencilla, una solicitud
Aplicación móvil con control giratorio de cargaAsync: rendimiento percibido más rápido
Procesamiento por lotes o exportación de datosSincronización: espere los resultados completos
Comparación de precios en muchos destinosSincronización: necesita datos completos para comparar

Manejo de casos extremos

No se encontraron resultados

Si ningún alquiler vacacional coincide con los criterios de búsqueda, la respuesta devuelve un código de estado 404. Esto puede suceder tanto en modo sincronizado como asíncrono.

Tiempo de espera en modo de sincronización

Si la solicitud de sincronización caduca y devuelve status: "in_progress", trátela como una respuesta asíncrona y sondee los resultados restantes utilizando el mismo ID de correlación.

ID de correlación obsoleta

Los ID de correlación están vinculados a una solicitud de autocompletar específica. Si necesita buscar una nueva ubicación, vuelva a llamar a la función de autocompletar para obtener una nueva identificación de correlación. No reutilice los ID de correlación en búsquedas de diferentes ubicaciones.

Próximos pasos

Revise la lista completa de tipos de propiedades de alquiler vacacional admitidos y lo que ofrece cada tipo.

¿Te resultó útil este artículo?