Validación de ingesta de transmisión

La introducción por transmisión le permite cargar sus datos en Adobe Experience Platform mediante la transmisión de puntos de conexión en tiempo real. Las API de ingesta de transmisión admiten dos modos de validación: sincrónica y asincrónica.

Primeros pasos

Esta guía requiere conocer los siguientes componentes de Adobe Experience Platform:

Leer llamadas de API de ejemplo

Este tutorial proporciona llamadas de API de ejemplo para demostrar cómo dar formato a las solicitudes. Estas incluyen rutas de acceso, encabezados necesarios y cargas de solicitud con el formato correcto. También se proporciona el JSON de muestra devuelto en las respuestas de API. Para obtener información sobre las convenciones utilizadas en la documentación para las llamadas de API de ejemplo, consulte la sección sobre cómo leer llamadas de API de ejemplo en la guía de solución de problemas Experience Platform.

Recopilar valores para encabezados necesarios

Para realizar llamadas a las API Platform, primero debe completar el tutorial de autenticación. Al completar el tutorial de autenticación, se proporcionan los valores para cada uno de los encabezados necesarios en todas las llamadas a la API Experience Platform, como se muestra a continuación:

  • Autorización: Portador {ACCESS_TOKEN}
  • x-api-key: {API_KEY}
  • x-gw-ims-org-id: {IMS_ORG}

Todos los recursos de Experience Platform, incluidos los que pertenecen a Schema Registry, están aislados en entornos limitados virtuales específicos. Todas las solicitudes a las API Platform requieren un encabezado que especifique el nombre del simulador para pruebas en el que se realizará la operación:

  • x-sandbox-name: {SANDBOX_NAME}
NOTA

Para obtener más información sobre los entornos limitados en Platform, consulte la documentación general del entorno limitado.

Todas las solicitudes que contienen una carga útil (POST, PUT, PATCH) requieren un encabezado adicional:

  • Content-Type: application/json

Cobertura de validación

Streaming Validation Service abarca la validación en las siguientes áreas:

  • Intervalo
  • Presencia
  • Enum
  • Patrón
  • Tipo
  • Formato

Validación sincrónica

La validación sincrónica es un método de validación que proporciona información inmediata sobre el motivo del error de ingesta. Sin embargo, al producirse un error, los registros en los que se ha producido un error en la validación se pierden e impiden que se envíen de forma descendente. Como resultado, la validación sincrónica solo debe utilizarse durante el proceso de desarrollo. Al realizar la validación sincrónica, se informa a los autores de llamadas del resultado de la validación XDM y, si ha fallado, del motivo del error.

De forma predeterminada, la validación sincrónica no está activada. Para habilitarlo, debe pasar el parámetro de consulta opcional synchronousValidation=true al realizar llamadas de API. Además, la validación sincrónica actualmente solo está disponible si el punto final del flujo está en el centro de datos de VA7.

Si un mensaje falla durante la validación sincrónica, el mensaje no se escribirá en la cola de salida, lo que proporciona comentarios inmediatos a los usuarios.

NOTA

Es posible que los cambios del esquema no estén disponibles inmediatamente, ya que los cambios se almacenan en la caché. Espere hasta quince minutos para que la caché se actualice.

Formato de API

POST /collection/{CONNECTION_ID}?synchronousValidation=true
Parámetro Descripción
{CONNECTION_ID} El valor id de la conexión de flujo continuo creada anteriormente.

Solicitud

Envíe la siguiente solicitud para introducir datos en la entrada de datos con validación sincrónica:

curl -X POST https://dcs.adobedc.net/collection/{CONNECTION_ID}?synchronousValidation=true \
  -H "Content-Type: application/json" \
  -d '{JSON_PAYLOAD}'
Parámetro Descripción
{JSON_PAYLOAD} El cuerpo JSON de los datos que desea introducir.

Respuesta

Con la validación sincrónica activada, una respuesta correcta incluye los errores de validación encontrados en su carga útil:

{
    "type": "http://ns.adobe.com/adobecloud/problem/data-collection-service/inlet",
    "status": 400,
    "title": "Invalid XDM Message Format",
    "report": {
        "message": "inletId: [6aca7aa2d87ebd6b2780ca5724d94324a14475f140a2b69373dd5c714430dfd4] imsOrgId: [7BF122A65C5B3FE40A494026@AdobeOrg] Message is invalid",
        "cause": {
            "_streamingValidation": [
                {
                    "schemaLocation": "#",
                    "pointerToViolation": "#",
                    "causingExceptions": [
                        {
                            "schemaLocation": "#",
                            "pointerToViolation": "#",
                            "causingExceptions": [],
                            "keyword": "additionalProperties",
                            "message": "extraneous key [workEmail] is not permitted"
                        },
                        {
                            "schemaLocation": "#",
                            "pointerToViolation": "#",
                            "causingExceptions": [],
                            "keyword": "additionalProperties",
                            "message": "extraneous key [person] is not permitted"
                        },
                        {
                            "schemaLocation": "#/properties/_id",
                            "pointerToViolation": "#/_id",
                            "causingExceptions": [],
                            "keyword": "type",
                            "message": "expected type: String, found: Long"
                        }
                    ],
                    "message": "3 schema violations found"
                }
            ]
        }
    }
}

La respuesta anterior enumera cuántas violaciones de esquema se encontraron y cuáles fueron las violaciones. Por ejemplo, esta respuesta indica que las claves workEmail y person no se definieron en el esquema y, por lo tanto, no se permiten. También marca el valor para _id como incorrecto, ya que el esquema esperaba un string, pero se insertó un long en su lugar. Tenga en cuenta que una vez que se encuentren cinco errores, el servicio de validación detendrá el procesamiento de ese mensaje. Sin embargo, se seguirán analizando otros mensajes.

Validación asincrónica

La validación asíncrona es un método de validación que no proporciona comentarios inmediatos. En su lugar, los datos se envían a un lote con errores en Data Lake para evitar la pérdida de datos. Estos datos fallidos se pueden recuperar posteriormente para su posterior análisis y reproducción. Este método debe utilizarse en la producción. A menos que se solicite lo contrario, la ingesta de flujo continuo funciona en modo de validación asincrónica.

Formato de API

POST /collection/{CONNECTION_ID}
Parámetro Descripción
{CONNECTION_ID} El valor id de la conexión de flujo continuo creada anteriormente.

Solicitud

Envíe la siguiente solicitud para introducir datos en la entrada de datos con validación asíncrona:

curl -X POST https://dcs.adobedc.net/collection/{CONNECTION_ID} \
  -H "Content-Type: application/json" \
  -d '{JSON_PAYLOAD}'
Parámetro Descripción
{JSON_PAYLOAD} El cuerpo JSON de los datos que desea introducir.
NOTA

No se requiere ningún parámetro de consulta adicional, ya que la validación asincrónica está habilitada de forma predeterminada.

Respuesta

Con la validación asíncrona habilitada, una respuesta correcta devuelve lo siguiente:

{
    "inletId": "f6ca9706d61de3b78be69e2673ad68ab9fb2cece0c1e1afc071718a0033e6877",
    "xactionId": "1555445493896:8600:8",
    "receivedTimeMs": 1555445493932,
    "synchronousValidation": {
        "skipped": true
    }
}

Tenga en cuenta cómo la respuesta indica que la validación sincrónica se ha omitido, ya que no se ha solicitado explícitamente.

Apéndice

Esta sección contiene información sobre qué significan los distintos códigos de estado para las respuestas de ingesta de datos.

Códigos de estado

Código de estado Lo que significa
200 Correcto. Para la validación sincrónica, significa que ha pasado las comprobaciones de validación. Para la validación asincrónica, significa que solo ha recibido el mensaje correctamente. Los usuarios pueden averiguar el estado final del mensaje observando el conjunto de datos.
400 Error. Hay algo mal en tu solicitud. Se recibe un mensaje de error con más detalles de los servicios de validación de flujo continuo.
401 Error. Su solicitud no está autorizada: deberá solicitarla con un token al portador. Para obtener más información sobre cómo solicitar acceso, consulte este tutorial o esta publicación de blog.
500 Error. Hay un error interno del sistema.
501 Error. Esto significa que la validación sincrónica es no compatible con esta ubicación.
503 Error. El servicio no está disponible actualmente. Los clientes deben volver a intentarlo al menos tres veces usando una estrategia exponencial de back-off.

En esta página

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now