Externt API external-api
Beskrivning description
Aktiviteten External API hämtar data till arbetsflödet från ett externt system via ett HTTP API-anrop.
De externa systemslutpunkterna kan vara offentliga API-slutpunkter, kundhanteringssystem eller serverlösa programinstanser (t.ex. Adobe I/O Runtime) för att nämna några kategorier.
De viktigaste egenskaperna för denna aktivitet är:
- Möjlighet att skicka data i ett JSON-format till en REST API-slutpunkt från tredje part
- Möjlighet att få ett JSON-svar tillbaka, mappa det till utdatatabeller och skicka det vidare till andra arbetsflödesaktiviteter.
- Felhantering med en utgående specifik övergång
Bakåtkompatibilitetsmeddelanden from-beta-to-ga
I Campaign Standard 20.4 har http-svarets datastorleksgräns och timeout-skydd sänkts för att anpassas till bästa praxis - se Begränsningar och skyddsutkast. Dessa skyddsändringar träder ej i kraft för befintliga externa API-aktiviteter. Vi rekommenderar därför att du ersätter befintliga externa API-aktiviteter med nya versioner i alla arbetsflöden.
När du ersätter Extern API-aktiviteter lägger du till den nya Extern API-aktiviteten i arbetsflödet, kopierar manuellt över konfigurationsinformationen och tar sedan bort den gamla aktiviteten.
Begränsningar och skyddsräcken guardrails
Följande skydd gäller för den här aktiviteten:
- 5 MB gräns för datastorlek på http-svar (Obs! Detta är en ändring från gränsen på 50 MB i föregående version)
- Tidsgränsen för begäran är 1 minut (Obs! Detta är en ändring från tidsgränsen på 10 minuter i föregående version)
- HTTP-omdirigeringar tillåts inte
- URL:er som inte är HTTPS nekas
- Begäranderubriken "Acceptera: application/json" och svarsrubriken "Innehållstyp: application/json" är tillåtna
Särskilda skydd har införts:
- Maximalt JSON-djup: Begränsa det maximala djupet för en anpassad kapslad JSON som kan bearbetas till 10 nivåer.
- Maximal längd på JSON-nyckel: Begränsa maxlängden för den interna nyckel som genereras till 255. Den här nyckeln är kopplad till kolumn-ID:t.
- Maximalt antal tillåtna JSON-dubblettnycklar: Begränsa det maximala antalet dubbla JSON-egenskapsnamn, som används som kolumn-ID, till 150.
Konfiguration configuration
Dra och släpp en External API-aktivitet i arbetsflödet och öppna aktiviteten för att starta konfigurationen.
Inkommande mappning
Inkommande mappning är en tillfällig tabell som genereras av en tidigare inkommande aktivitet som visas och skickas som JSON i användargränssnittet.
Utifrån den här tillfälliga tabellen kan användaren ändra inkommande data.
I listrutan Inkommande resurs kan du välja den frågeaktivitet som ska skapa det tillfälliga registret.
Kryssrutan Lägg till antalparameter lägger du till ett räkningsvärde för varje rad som kommer från den tillfälliga tabellen. Observera att den här kryssrutan endast är tillgänglig om den inkommande aktiviteten genererar en tillfällig tabell.
I avsnittet Inkommande kolumner kan användaren lägga till fält från den inkommande övergångstabellen. De markerade kolumnerna är nycklarna i dataobjektet. Dataobjektet i JSON blir en matrislista som innehåller data för markerade kolumner från varje rad i tabellen för inkommande övergångar.
I textrutan Anpassa parametrar kan du lägga till en giltig JSON med ytterligare data som behövs för det externa API:t. Dessa ytterligare data läggs till i params-objektet i den genererade JSON:n.
Utgående mappning
På den här fliken kan du definiera exempelstrukturen för JSON som returneras av API-anropet.
JSON-tolkaren är utformad för att rymma JSON-standardstrukturmönstertyper, med några undantag. Ett exempel på ett standardmönster är:{“data”:[{“key”:“value”}, {“key”:“value”},...]}
JSON-exempeldefinitionen måste ha följande egenskaper:
- Matriselement måste innehålla egenskaper på första nivån (djupare nivåer stöds inte).
Egenskapsnamn blir till kolumnnamn för utdatabladet i den tillfälliga utdatatabellen. - JSON-element som ska hämtas måste vara på 10 eller färre kapslingsnivåer inom JSON-svaret.
- Kolumnnamnsdefinitionen baseras på det första elementet i matrisen "data".
Kolumndefinition (lägg till/ta bort) och egenskapens typvärde kan redigeras på fliken Kolumndefinition.
Beteende Förenkla kryssrutan:
Förenkla kryssrutan (standard: omarkerad) tillhandahålls för att ange om JSON ska förenklas till en nyckel/värdekarta eller inte.
-
När kryssrutan är inaktiverad (avmarkerad) tolkas JSON-exempelfilen så att den söker efter ett matrisobjekt. Användaren måste ange en trimmad version av JSON-formatet för API-svarsexemplet så att Adobe Campaign kan avgöra exakt vilken matris som användaren är intresserad av att använda. Vid redigering av arbetsflödet bestäms och registreras sökvägen till det kapslade matrisobjektet så att den kan användas vid körning för att komma åt det matrisobjektet från JSON-svarstexten som tas emot från API-anropet.
-
När kryssrutan är aktiverad (markerad) förenklas JSON-exempelfilen och alla egenskaper som anges i det angivna exemplet JSON används för att skapa kolumner i den tillfälliga utdatatabellen och visas på fliken Kolumndefinitioner. Observera att om det finns ett matrisobjekt i JSON-exempelfilen, kommer även alla element i dessa matrisobjekt att förenklas.
Om tolkningen valideras visas ett meddelande som uppmanar dig att anpassa datamappningen på fliken Kolumndefinition. I andra fall visas ett felmeddelande.
Körning
Med den här fliken kan du definiera anslutningens slutpunkt. I fältet URL kan du definiera den HTTPS-slutpunkt som Campaign Standarden ska kommunicera med.
Om slutpunkten kräver det finns det två typer av autentiseringsmetoder:
-
Grundläggande autentisering: ange användarnamn/lösenord i avsnittet Request Header(s).
-
OAuth-autentisering: Genom att klicka på Use connection parameters defined in an external account i ett externt konto kan du välja ett externt konto där OAuth-autentiseringen definieras. Se avsnittet Externa konton för mer information.
Egenskaper
På den här fliken kan du styra allmänna egenskaper för den externa API-aktiviteten, som t.ex. etiketten som visas i gränssnittet. Det interna ID:t kan inte anpassas.
Kolumndefinition
På fliken Kolumndefinition kan du ange datastrukturen exakt för varje kolumn för att importera data som inte innehåller några fel och få dem att matcha de typer som redan finns i Adobe Campaign-databasen för framtida åtgärder.
Du kan till exempel ändra etiketten för en kolumn och välja dess typ (sträng, heltal, datum, etc.) eller specificera felbearbetning.
Mer information finns i avsnittet Läs in fil.
Övergång
På den här fliken kan du aktivera den utgående övergången och dess etikett. Den här specifika övergången är användbar vid timeout eller om nyttolasten överskrider datastorleksgränsen.
Körningsalternativ
Den här fliken är tillgänglig i de flesta arbetsflödesaktiviteter. Mer information finns i avsnittet Aktivitetsegenskaper.
Testning
Om du vill testa den externa API-funktionen med en enkel testslutpunkt kan du använda Postman Echo: https://docs.postman-echo.com.
Felsökning
Två typer av loggmeddelanden har lagts till i den nya arbetsflödesaktiviteten: information och fel. De kan hjälpa dig att felsöka potentiella problem.
Information
Dessa loggmeddelanden används för att logga information om användbara kontrollpunkter när arbetsflödesaktiviteten körs.
Fel
Dessa loggmeddelanden används för att logga information om oväntade feltillstånd som kan göra att arbetsflödesaktiviteten misslyckas.
API-URL kunde inte tolkas (fel: "-2010").
Obs! Det här felet loggas när API-URL:en inte stöder verifieringsregler.
API-URL-värden får inte vara localhost eller bokstavlig IP-adress (URL-värd: "localhost").
API-URL-värden får inte vara localhost eller bokstavlig IP-adress (URL-värd: "192.168.0.5").
API-URL-värden får inte vara localhost eller bokstavlig IP-adress (URL-värd: [2001]).
Det gick inte att skapa JSON för begärandetext. Ett fel uppstod när "params" skulle läggas till.
Det gick inte att skapa JSON för begärandetext. Ett fel uppstod när "data" skulle läggas till.
HTTP header key is bad (header key: '%s').
Obs! Det här felet loggas när den anpassade rubriknyckeln inte kan valideras enligt RFC
HTTP header value is bad (header value: '%s').
Obs! Det här felet loggas när det anpassade rubrikvärdet inte kan valideras enligt RFC
Felformaterad JSON eller ogiltigt format.
Obs! Det här meddelandet gäller endast för tolkning av svarstexten från det externa API:t, och loggas när du försöker validera om svarstexten uppfyller det JSON-format som krävs för den här aktiviteten.
När aktiviteten misslyckas på grund av HTTP 401-felsvar – Aktiviteten misslyckades (orsak: HTTP – 401)
När aktiviteten misslyckas på grund av ett misslyckat internt anrop – Aktiviteten misslyckades (orsak: "iRc – -Nn").
När aktiviteten misslyckas på grund av en ogiltig rubrik av innehållstyp. – Aktiviteten misslyckades (orsak: "Innehållstyp – application/html").