Verbeterde foutcodes enhanced-error-codes
Overzicht overview
In dit document wordt de lijst met API-foutcodes en aanvullende foutinformatie beschreven die naar de toepassingen wordt geretourneerd.
Om de Verbeterde Codes van de Fout in de toepassing van Programmers te gebruiken, moet een verzoek aan het team van de Steun worden ingediend om het met een configuratieverandering toe te laten.
Behandeling van antwoordfout response-error-handling
In de meeste scenario's bevat de API voor primetime-verificatie aanvullende foutinformatie in de antwoordinstantie, zodat deze betekenisvolle context waarom een bepaalde fout is opgetreden en/of mogelijke oplossingen om het probleem automatisch op te lossen. In sommige specifieke gevallen met verificatie- of uitlogstromen kunnen de Primetime-verificatieservices echter een HTML-antwoord of een leeg lichaam retourneren. Raadpleeg de API-documentatie voor meer informatie.
Terwijl bepaalde types van fouten automatisch kunnen worden behandeld (zoals het opnieuw proberen van een vergunningsverzoek in het geval van een netwerkonderbreking of gebruiker vereisen om opnieuw voor authentiek te verklaren als hun zitting is verlopen), zouden andere types configuratieveranderingen of de interactie van het team van de klantenzorg kunnen vereisen. Het is belangrijk voor Programmeurs om volledige fouteninformatie in dergelijke gevallen te verzamelen en te verstrekken.
De API van de Authentificatie Primetime keert de codes van de Status van HTTP in waaier 400-500 terug om op mislukkingen of fouten te wijzen. Elke HTTP-statuscode heeft bepaalde implicaties:
-
De 4xx-foutcodes impliceren dat de fout door de client wordt gegenereerd en dat de client extra werk moet doen om de fout te verhelpen (bijvoorbeeld een toegangstoken verkrijgen voordat beschermde API's worden aangeroepen of een vereiste parameter wordt opgegeven)
-
De 5xx-foutcodes impliceren dat de fout wordt gegenereerd door de server en dat de server extra werk moet doen om deze te herstellen.
De aanvullende foutinformatie wordt opgenomen in het veld "Fout" in de antwoordinstantie.
{
"status" : 403,
"code" : "network_connection_failure",
"message": "Unable to contact your TV provider services",
"helpUrl" : "",
"trace" : "12f6fef9-d2e0-422b-a9d7-60d799abe353",
"action" : "retry"
}
—
XML
< error >< status >403</ status >< code >network_connection_failure</ code >< message >Unable to contact your TV provider services</ message > < helpUrl ></ helpUrl >< trace >12f6fef9-d2e0-422b-a9d7-60d799abe353</ trace >< action >retry</ action ></ error >Adobe Primetime API's die meerdere items verwerken (API voor voorafgaande toestemming, enz.) geven mogelijk aan of de verwerking voor een bepaald item is mislukt en met succes voor andere items is uitgevoerd met behulp van foutgegevens op itemniveau. In dit geval worden de "error" object bevindt zich op itemniveau en de responstekst kan meerdere items bevatten "fouten" objecten - raadpleeg de API-documentatie.
JSON
{
"id" : "TestStream1",
"authorised" : true
},
{
"id" : "TestStream2",
"authorised" : false,
"error" : {
"status" : 403,
"code" : "network_connection_failure",
"message": "Unable to contact your TV provider services",
"details" : "",
"helpUrl" : "",
"trace": "8bcb17f9-b172-47d2-86d9-3eb146eba85e",
"action" : "retry"
}
}
]
}
Elk foutobject heeft de volgende parameters:
- 400 Ongeldig verzoek
- 400 Ongeldig verzoek
- 400 Ongeldig verzoek
- 401 Onbevoegd
- 403 Verboden
- 404 Niet gevonden
- 405 Methode niet toegestaan
- 409 Conflict
- 410 Gone
- 412 Voorwaarde is mislukt
- Te veel verzoeken
- Fout met 500 Interval-server
- 503 Service niet beschikbaar
Merk op dat als geen douanebericht van de partnerdiensten werd ontvangen dan dit gebied niet op de foutengebieden zou kunnen aanwezig zijn.
De URI vertegenwoordigt een absolute URL en mag niet worden afgeleid van foutcode. Afhankelijk van de foutcontext kan een andere URL worden opgegeven. Bijvoorbeeld, zal de zelfde bad_request foutencode verschillende URL's voor authentificatie en vergunningsdiensten opbrengen.
-none - Helaas is er geen vooraf gedefinieerde actie om dit probleem op te lossen. Dit kan wijzen op een onjuiste aanroep van de openbare API
-configuration - Een configuratieverandering is nodig door TVE dashboard of door steun te contacteren.
-application-registration - De toepassing moet zich opnieuw registreren.
-authentication - The user must authenticate or re-authenticate.
-authentication - De gebruiker moet vergunning voor de specifieke middel verkrijgen.
-degradatie - Er moet een of andere vorm van afbraak worden toegepast.
-retry - Het probleem kan worden verholpen door de aanvraag opnieuw in te proberen
-retry-after - Het opnieuw proberen van het verzoek na de vermelde periode zou de kwestie kunnen oplossen.
Opmerkingen:
-
Beperkt kolom Hiermee wordt aangegeven of de desbetreffende veldwaarde een eindige set vertegenwoordigt (bijvoorbeeld bestaande HTTP-statuscodes voor "status"). In de toekomst kunnen updates van deze specificatie waarden toevoegen aan de beperkte lijst, maar worden bestaande waarden niet verwijderd of gewijzigd. Onbeperkte velden kunnen doorgaans gegevens bevatten, maar er kunnen beperkingen gelden om een redelijke grootte te garanderen.
-
Elke reactie van de Adobe zal "Adobe-verzoek-identiteitskaart"bevatten die het cliëntverzoek door onze diensten van HTTP identificeert. De "traceren" het veld vult dat aan en zij dienen samen te worden gerapporteerd.
HTTP-statuscodes en foutcodes http-status-codes-and-error-codes
De inconsistenties tussen verschillende foutcodes en de bijbehorende HTTP-statuscodes zijn het gevolg van de achterwaartse compatibiliteitsvereisten met oudere SDK's en toepassingen (bijvoorbeeld onbekend_toepassing resulteert in een onjuiste aanvraag van 400 aanvragen terwijl onbekend_software_statement rendement 401 niet toegestaan). Het oplossen van deze inconsistenties zal in toekomstige herhalingen gericht zijn.
Handelingen en foutcodes actions-and-error-codes
Voor de meeste foutcodes kunnen meerdere acties in aanmerking komen als paden naar het oplossen van het probleem in kwestie of zelfs meerdere acties zijn vereist om ze automatisch te corrigeren. We hebben ervoor gekozen de fout met de hoogste waarschijnlijkheid aan te geven. De handelingen kan in drie categorieën worden gesplitst:
- degenen die proberen om de verzoekcontext te bevestigen (opnieuw proberen, opnieuw proberen-na)
- degenen die proberen de gebruikerscontext binnen de toepassing (toepassing-registratie, authentificatie, vergunning) te bevestigen
- die de integratiecontext tussen een toepassing en een identiteitsprovider proberen te herstellen (configuratie, degradatie)
Voor de eerste categorie (opnieuw proberen en opnieuw proberen-na), eenvoudig zou het opnieuw proberen van het zelfde verzoek genoeg kunnen zijn om de kwestie op te lossen. In gevallen van APIs die veelvoudige punten behandelen, zou de toepassing het verzoek moeten herhalen en slechts die punten met "retry"of "retry-after"actie omvatten. Voor "retry-after" actie, een "Opnieuw proberen na De header geeft aan hoeveel seconden de toepassing moet wachten voordat de aanvraag wordt herhaald.
Voor de tweede en derde categorie is de daadwerkelijke uitvoering van de actie in hoge mate afhankelijk van de toepassingsfuncties. Bijvoorbeeld "aantasting" kan worden geïmplementeerd als "switch to 15 minuten temporary pass to allow users playback of the content" of als "automatic tool to apply AUTHN-ALL or AUTHZ-ALL degradatie for its integration with the specified MVPD". Vergelijkbaar met "verificatie"Actie kan een passieve verificatie (back-kanaalverificatie) op een tablet en een volledige tweede schermverificatiestroom op aangesloten tv's activeren. Daarom hebben we ervoor gekozen om volledige URL's een schema en alle parameters te geven.
Foutcodes error-codes
In de onderstaande tabel met fouten worden de mogelijke foutcodes, de bijbehorende berichten en mogelijke acties weergegeven.