Requisitos de ámbito
Requisitos de ámbito
draft y published. Esto te permite actualizar los datos de la tabla, ya sea para realizar pruebas o para permitir un proceso de aprobación manual, sin que ello afecte a las páginas publicadas. Más información sobre tablas en borrador vs. tablas en vivo.
Si una tabla está configurada para permitir el acceso público, puedes acceder a la versión publicada de la tabla y las filas sin ninguna autenticación especificando el ID de tu cuenta de HubSpot a través del parámetro de consulta portalId.
Si estás migrando desde la versión 2 de la API de HubDB, obtén más información sobre los cambios en la API actual (v3).
Límites de tasa
Las solicitudes de API de HubDB tienen diferentes límites de tasa, según el tipo de solicitud:- Las solicitudes
GETrealizadas que no requieren autentificación (incluidas las solicitudes de JavaScript del lado del cliente) están limitadas a 10 solicitudes por segundo. Estas solicitudes no contarán para el límite diario. - Todas las demás solicitudes que utilizan la autenticación siguen los límites estándar.
Tablas en borrador vs tablas en vivo
Las tablas de HubDB tienen versiones en borrador y en vivo, y las versiones en vivo se pueden publicar o no publicar. Esto te permitirá actualizar los datos de la tabla, ya sea para vistas preliminares o pruebas de páginas, o para permitir un proceso de aprobación manual, sin afectar ninguna página activa. En esta API, se designan puntos de terminación separados para las versiones en borrador y publicadas de una tabla. Por ejemplo, puedes recuperar la versión publicada de una tabla haciendo una solicitudGET al siguiente punto de terminación:
/cms/v3/hubdb/tables/{tableIdOrName}
Y para recuperar cualquier contenido que haya sido redactado pero que aún no haya sido publicado, agregarías /draft al final de la URL:
/cms/v3/hubdb/tables/{tableIdOrName}/draft
Los datos en borrador se pueden revisar y luego enviar en HubSpot, o con el punto de terminación /push-live. Los datos en borrador también se pueden descartar a través del punto de terminación /reset, lo que te permite volver a la versión actual en vivo de los datos sin interrupciones.
Crear una tabla de HubDB
Para crear una tabla de HubDB, haz una solicitudPOST a /cms/v3/hubdb/tables.
En el cuerpo de la solicitud, especifica los siguientes campos obligatorios:
Además, puedes especificar los siguientes campos opcionales:
Si aún no se han agregado columnas, tu solicitud de creación podría tener el siguiente aspecto:
Agregar columnas a la tabla
Cada columna en una tabla de HubDB se puede definir con las siguientes propiedades:
Usando los campos anteriores, tu solicitud para crear una nueva tabla de HubDB podría verse de la siguiente manera:
id de la columna en el objeto de entrada.
Agregar filas a la tabla
Puedes agregar filas manualmente a través de la API, o puedes importar filas desde un archivo CSV. Para agregar filas a una tabla de HubDB, haz una solicitudPOSTa /cms/v3/hubdb/tables/{tableIdOrName}/rows.
Para cada fila de la tabla, puedes incluir los siguientes campos:
Usando los campos anteriores, el cuerpo de tu solicitud puede tener un aspecto similar al siguiente:
Importar filas desde CSV
Para importar datos a una tabla de HubDB desde un archivo CSV, realiza una solicitudPOST a /cms/v3/hubdb/tables/{tableIdOrName}/draft/import.
El punto de terminación de importación acepta una solicitud multipart/form-data POST:
config: un conjunto de opciones con formato JSON para la importación.file: el archivo CSV que deseas importar.
config, incluye los siguientes campos como cadena JSON:
Usando la tabla anterior, tu
config JSON podría verse de la siguiente manera:
Formato de fecha
Hay varios formatos que puedes utilizar al importar datos a una columna de tipo fecha. Enterosyyyy/mm/ddyyyy/mm/ddmm/dd/yyyymm/dd/yy
dd/mm/yy no se acepta). Los enteros pueden separarse con guiones (-) o barras diagonales (/).
Fechas relajadas
También puede importar formatos de fecha que estén menos estandarizados que las fechas basadas en números enteros. Por ejemplo:**
The 1st of March in the year 2022Fri Mar 4 2022March 4th '22
next ThursdayTodaytomorrow3 days from now
Opciones de restablecimiento
Al importar datos de un archivo CSV a una tabla de HubDB, puedes establecer el camporesetTable en true o false (por opción predeterminada) para administrar si los datos de la fila de HubDB se sobrescriben.
-
Si
resetTablese establece entrue:- Si las filas del archivo CSV no tienen una columna de ID de fila (
hs_ido el ID de fila se especifica como0, esas filas se insertarán con los nuevos ID de fila generados. - Si los ID de fila del archivo CSV ya existen en la tabla objetivo, las filas existentes en la tabla se actualizarán con los nuevos valores de los archivos de entrada.
- Si la tabla tiene filas pero el archivo CSV de entrada no tiene esos ID de fila, esas filas se eliminarán de la tabla objetivo.
- Si los ID de fila del archivo CSV de entrada no existen en la tabla objetivo, esas filas se insertarán con los nuevos ID de fila generados y se ignorarán los ID de fila indicados en el archivo de entrada.
- Si el archivo CSV de entrada no contiene la columna ID de fila, todas las filas se eliminarán de la tabla objetivo y las filas del archivo de entrada se insertarán con los nuevos ID de fila generados.
- Si las filas del archivo CSV no tienen una columna de ID de fila (
-
Si
resetTablese establece enfalse(por opción predeterminada):- Si los ID de fila del archivo CSV ya existen en la tabla objetivo, las filas existentes en la tabla se actualizarán con los nuevos valores de los archivos de entrada.
- Si la tabla tiene filas pero el archivo CSV de entrada no tiene esos ID de fila, esas filas no se eliminarán de la tabla objetivo y esas filas permanecerán sin cambios.
- Si los ID de fila del archivo CSV de entrada no existen en la tabla objetivo, esas filas se insertarán con los nuevos ID de fila generados y se ignorarán los ID de fila indicados en el archivo de entrada.
- Si las filas del archivo CSV no tienen una columna de ID de fila o el ID de fila se especifica como
0, esas filas se insertarán con los nuevos ID de fila generados.
Recuperar datos de HubDB
Hay varias maneras de recuperar los datos de HubDB, dependiendo de si estás buscando detalles de la tabla o las filas de una tabla:- Para recuperar los detalles de la tabla de todas las tablas publicadas, haz una solicitud
GETa/cms/v3/hubdb/tables. - Para recuperar los detalles de la tabla de una tabla publicada específica, realiza una solicitud
GETa/cms/v3/hubdb/tables{tableIdOrName}. - Para recuperar todas las filas de una tabla específica, haz una solicitud
GETa/cms/v3/hubdb/tables{tableIdOrName}/rows. - Para recuperar una fila específica de una tabla, haz una solicitud
GETa/cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}.
portalId.
Filtrar filas obtenidas
Al recuperar datos de la tabla de HubDB, puedes aplicar filtros como parámetros de consulta para recibir datos específicos. Los parámetros de consulta de filtro se construyen de la siguiente manera:columnName__operator.
Por ejemplo, si tienes una columna numérica denominada bar, puedes filtrar los resultados para incluir solo las filas en las que bar sea mayor que 10: &bar__gt=10.
Todos los filtros se suman con Y (actualmente no se admiten filtros O).
Al filtrar, ten en cuenta lo siguiente:
- Al pasar valores para las columnas
multiselect, los valores deben estar separados por comas (por ejemplo,multiselect_column__contains=1,2). - Para los filtros
datetime, puedes utilizar fechas relativas en lugar de marcas de tiempo para especificar un valor relativo a la hora actual. Por ejemplo,-3hcorrespondería a la marca de tiempo 3 horas antes de ahora, mientras que10scorrespondería a 10 segundos en el futuro. Las unidades de tiempo admitidas son ms (milisegundos), s (segundos), m (minutos), h (horas), d (días). La hora actual se puede utilizar especificando un valor cero: 0s
hs_id es una columna number, la columna hs_created_at es un datetime, y las columnas hs_path y hs_name son columnas text.
A continuación, descubre qué operadores se pueden aplicar a qué tipos de columna:
Ordenar filas obtenidas
Al recuperar datos de HubDB, puedes aplicar la ordenación como parámetro de consulta para determinar el orden de los datos obtenidos. Para ordenar los datos, agrega un parámetro de consultasort y especifica el nombre de la columna:
&sort=columnName
De forma predeterminada, los datos se devolverán en el orden natural de la columna especificada. Puedes invertir la ordenación agregando un - al nombre de la columna:
&sort=-columnName
Puedes incluir este parámetro varias veces para ordenar por varias columnas.
Además de ordenar por una columna, hay tres funciones que se pueden utilizar:
- geo_distance(location_column_name, latitud, longitud): toma el nombre de una columna de localización y las coordenadas, devuelve las filas ordenadas según la distancia entre el valor de la columna de localización especificada y las coordenadas proporcionadas.
- longitud(column_name): toma el nombre de una columna, devuelve las filas ordenadas por la longitud del valor de la columna (calculada como una cadena)
- random(): devuelve las filas en orden aleatorio.
geo_distance devuelve primero los elementos que están más lejos:
sort=-geo_distance(location_column,42.37,-71.07)
Configurando tablas HubDB para páginas dinámicas
Con CMS de HubSpot, puedes usar una tabla de HubDB como fuente de datos para generar páginas dinámicas. Por ejemplo, puedes crear una tabla que contenga una fila para cada miembro de tu equipo ejecutivo, con columnas que contengan la información que desees mostrar en una página. Después de seleccionar esa tabla como fuente de datos dinámicos para una página, esa página generará un página de índice que muestra todas las filas como elementos de resumen, junto con páginas separadas para cada fila, similar a un página de índice de blog y páginas de publicación de blog. Para permitir que una tabla se seleccione como fuente de datos en el editor de contenido, deberás estableceruseForPage en true. Opcionalmente, puedes incluir dynamicMetaTags para especificar qué columnas usar para los metadatos de cada página.
Por ejemplo, el código siguiente crearía una tabla que se puede usar para páginas dinámicas y especifica las tres columnas que se usarán para los metadatos de página.
Cambios en la v3
- Las tablas deben tener tanto
namecomolabel. Este nombre no se puede cambiar una vez creada la tabla. Los nombres solo pueden incluir letras minúsculas, dígitos y guiones bajos y no pueden comenzar con un número. Ambosnameylabeldeben ser únicos en la cuenta. - La API admite tanto la tabla
idcomonamelas rutas URL. GETLos puntos de terminación de fila devuelven la columnanameen lugar deiden el campovalues. Además, los puntos de terminación de filaPOST/PUT/PATCHrequieren una columnanameen lugar deiden el campovalues.- Los puntos de terminación de actualización de fila
PATCHahora aceptan actualizaciones dispersas, lo que significa que solo puedes especificar los valores de columna que necesita actualizar (mientras que tenías que especificar todos los valores de columna en las versiones anteriores). Al actualizar una columna con una lista de valores como multiselect, debes especificar la lista de todos los valores. Para eliminar el valor de una columna, debes especificar la columna con el valor comonullen la solicitud. - Se han eliminado los puntos de terminación
get/update/deletea una celda de fila en favor de los puntos de terminación de actualización de filaPATCH. - El punto de terminación de importación ahora admite un campo opcional
idSourceColumnjunto con los campos existentes en las opciones con formato JSON. Puedes utilizar este campo para especificar la columna del archivo csv que contiene los ID de fila. Para importar nuevas filas junto con los nuevos valores de las filas existentes, simplemente puedes especificar0como el id de fila para las nuevas filas y los id de fila válidos para las columnas existentes. Ver más detalles a continuación en la sección Importar. También puedes utilizar nombres o identificadores de columnas en el campo de destino de las asignaciones de columnas en las opciones con formato JSON. - Clonar el punto de terminación requiere un nuevo nombre y una nueva etiqueta.