Direktinmatningsvalidering

Med direktuppspelningsintag kan du överföra data till Adobe Experience Platform med direktuppspelningsslutpunkter i realtid. API:er för direktuppspelning stöder två valideringslägen - synkron och asynkron.

Komma igång

Handboken kräver en fungerande förståelse av följande komponenter i Adobe Experience Platform:

Läser exempel-API-anrop

I den här självstudiekursen finns exempel-API-anrop som visar hur du formaterar dina begäranden. Det kan vara sökvägar, obligatoriska rubriker och korrekt formaterade begärandenyttolaster. Ett exempel på JSON som returneras i API-svar finns också. Information om konventionerna som används i dokumentationen för exempel-API-anrop finns i avsnittet om läsa exempel-API-anrop i Experience Platform felsökningsguide.

Samla in värden för obligatoriska rubriker

För att ringa Platform API:er måste du först slutföra självstudiekurs om autentisering. När du är klar med självstudiekursen för autentisering visas värdena för var och en av de obligatoriska rubrikerna i alla Experience Platform API-anrop enligt nedan:

  • Behörighet: Bearer {ACCESS_TOKEN}
  • x-api-key: {API_KEY}
  • x-gw-ims-org-id: {ORG_ID}

Alla resurser i Experience Platform, inklusive de som tillhör Schema Registry, isoleras till specifika virtuella sandlådor. Alla förfrågningar till Platform API:er kräver en rubrik som anger namnet på sandlådan som åtgärden ska utföras i:

  • x-sandbox-name: {SANDBOX_NAME}
OBSERVERA

Mer information om sandlådor i Platform, se översiktsdokumentation för sandlåda.

Alla begäranden som innehåller en nyttolast (POST, PUT, PATCH) kräver ytterligare en rubrik:

  • Innehållstyp: application/json

Valideringstäckning

Streaming Validation Service omfattar validering inom följande områden:

  • Intervall
  • Närvaro
  • Enum
  • Mönster
  • Typ
  • Format

Synkron validering

Synkron validering är en valideringsmetod som ger omedelbar feedback om varför ett intag misslyckades. Vid fel tas dock de poster som inte godkänns vid valideringen bort och kan inte skickas längre fram i kedjan. Därför bör synkron validering endast användas under utvecklingsprocessen. När synkron validering utförs informeras anroparna om både resultatet av XDM-valideringen och, om det misslyckas, orsaken till felet.

Synkron validering är inte aktiverat som standard. Om du vill aktivera den måste du ange den valfria frågeparametern syncValidation=true när API-anrop görs. Dessutom är synkron validering för närvarande bara tillgängligt om strömslutpunkten finns i datacentret VA7.

OBSERVERA

The syncValidation frågeparametern är bara tillgänglig för den enda meddelandeslutpunkten och kan inte användas för batchslutpunkten.

Om ett meddelande misslyckas under synkron validering kommer meddelandet inte att skrivas till utdatakön, vilket ger omedelbar feedback till användarna.

OBSERVERA

Schemaändringar är kanske inte omedelbart tillgängliga eftersom ändringar cachelagras. Cacheminnet kan uppdateras i upp till femton minuter.

API-format

POST /collection/{CONNECTION_ID}?syncValidation=true
Parameter Beskrivning
{CONNECTION_ID} The id värdet för den direktuppspelningsanslutning som skapades tidigare.

Begäran

Skicka följande begäran om att importera data till datainmatningen med synkron validering:

curl -X POST https://dcs.adobedc.net/collection/{CONNECTION_ID}?syncValidation=true \
  -H "Content-Type: application/json" \
  -d '{JSON_PAYLOAD}'
Parameter Beskrivning
{JSON_PAYLOAD} JSON-delen av data som du vill importera.

Svar

När synkron validering är aktiverat innehåller ett lyckat svar alla påträffade valideringsfel i nyttolasten:

{
    "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"
                }
            ]
        }
    }
}

Svaret ovan visar hur många schemaöverträdelser som har påträffats och vilka dessa överträdelser var. Det här svaret anger till exempel att tangenterna workEmail och person har inte definierats i schemat och är därför inte tillåtna. Det flaggar också värdet för _id är felaktigt eftersom schemat förväntade ett string, men long infogades i stället. Observera att valideringstjänsten kommer att stop bearbetar meddelandet. Andra meddelanden kommer dock att fortsätta att analyseras.

Asynkron validering

Asynkron validering är en valideringsmetod som inte ger omedelbar feedback. I stället skickas data till en misslyckad gruppindata Data Lake för att förhindra dataförlust. Data som inte fungerar kan hämtas senare för ytterligare analys och repriser. Denna metod bör användas i produktionen. Om inget annat anges används direktuppspelningsuppläsning i asynkront valideringsläge.

API-format

POST /collection/{CONNECTION_ID}
Parameter Beskrivning
{CONNECTION_ID} The id värdet för den direktuppspelningsanslutning som skapades tidigare.

Begäran

Skicka följande begäran om att importera data till datainmatningen med asynkron validering:

curl -X POST https://dcs.adobedc.net/collection/{CONNECTION_ID} \
  -H "Content-Type: application/json" \
  -d '{JSON_PAYLOAD}'
Parameter Beskrivning
{JSON_PAYLOAD} JSON-delen av data som du vill importera.
OBSERVERA

Ingen extra frågeparameter krävs eftersom asynkron validering är aktiverat som standard.

Svar

När asynkron validering är aktiverat returnerar ett lyckat svar följande:

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

Observera hur svaret anger att synkron validering har hoppats över, eftersom det inte uttryckligen har begärts.

Bilaga

Det här avsnittet innehåller information om vad de olika statuskoderna innebär för svar på inhämtning av data.

Statuskoder

Statuskod Vad det betyder
200 Lyckades. För synkron validering innebär det att valideringskontrollerna har slutförts. För asynkron validering innebär det att meddelandet endast har tagits emot. Användarna kan ta reda på den slutliga meddelandestatusen genom att observera datauppsättningen.
400 Fel. Det är något fel på din begäran. Ett felmeddelande med mer information tas emot från Streaming Validation Services.
401 Fel. Din begäran är inte auktoriserad - du måste begära med en innehavartoken. Mer information om hur du begär åtkomst finns här självstudiekurs eller blogginlägg.
500 Fel. Det finns ett internt systemfel.
501 Fel. Detta innebär att synkron validering är not stöds för den här platsen.
503 Fel. Tjänsten är inte tillgänglig just nu. Kunderna bör försöka igen minst tre gånger med en exponentiell strategi för bakåtjustering.

På denna sida