Entitlement Service Monitoring API entitlement-service-monitoring-api
API-overzicht api-overview
De Controle van de Dienst van het recht (ESM) wordt uitgevoerd als WOLAP (Web-based Online analytische verwerking). ESM is een generisch zaken-meldend Web API die door een gegevenspakhuis wordt gesteund. Het doet dienst als de vraagtaal van HTTP die typische verrichtingen toelaat OLAP om RESTfully worden uitgevoerd.
ESM API verstrekt een hiërarchische mening van de onderliggende kubussen OLAP. Elke bron (dimensie in de dimensiehiërarchie, in kaart gebracht als segment van de weg URL) produceert rapporten met (bijeengevoegde cijfers voor de huidige selectie. Elke bron wijst naar de bovenliggende bron (voor roll-up) en de bijbehorende subbronnen (voor boor-down). Segmenteren en dicing worden bereikt via parameters van queryreeksen die de afmetingen vastzetten op specifieke waarden of bereiken.
De REST API verstrekt de beschikbare gegevens binnen een tijdsinterval dat in het verzoek wordt gespecificeerd (die terug naar standaardwaarden als niets wordt verstrekt), volgens de afmetingspad, verstrekte filters, en geselecteerde metriek. Het tijdbereik wordt niet toegepast op rapporten die geen tijdafmetingen bevatten (jaar, maand, dag, uur, minuut, seconde).
Het eindpunt URL wortelweg zal de algemene bijeengevoegde metriek binnen één enkel verslag, samen met de verbindingen aan de beschikbare boor-down opties terugkeren. De API-versie wordt toegewezen als het volgende segment van het URI-eindpuntpad. Bijvoorbeeld: https://mgmt.auth.adobe.com/*v2*
betekent dat de cliënten tot WOLAP versie 2 zullen toegang hebben.
De beschikbare URL-paden kunnen worden gevonden via koppelingen in het antwoord. Geldige URL-paden worden vastgehouden om een pad in de onderliggende boor-down structuur toe te wijzen dat (pre)geaggregeerde metriek bevat. Een pad in het formulier /dimension1/dimension2/dimension3
zal een pre-samenvoeging van deze drie dimensies (het equivalent van SQL weerspiegelen clause GROUP
BY dimension1
, dimension2
, dimension3
). Als een dergelijke pre-samenvoeging niet bestaat en het systeem het niet kan onmiddellijk berekenen, zal API een 404 niet Gevonden reactie terugkeren.
Boor-down Boom drill-down-tree
De volgende boor-benedenbomen illustreren de afmetingen (middelen) beschikbaar in ESM 2.0 voor [Programmeurs] (#esm_afmetingen) en MVPD's.
Dimensionen beschikbaar voor programmeurs progr-dimensions
Dimensionen die beschikbaar zijn voor MVPD's mvpd-dimensions
Een GET aan de https://mgmt.auth.adobe.com/v2
API-eindpunt retourneert een representatie met:
-
Koppelingen naar de beschikbare basisverdiepingspaden:
-
<link rel="drill-down" href="/v2/dimensionA"/>
-
<link rel="drill-down" href="/v2/dimensionB"/>
-
-
Een samenvatting (samengevoegde waarden) voor alle metriek (in het standaardinterval, aangezien geen parameters van het vraagkoord worden verstrekt, zie hieronder).
Na een boor-down weg (stap voor stap):/dimensionA/year/month/day/dimensionX
Hiermee wordt de volgende reactie opgehaald:
-
Koppelingen naar "
dimensionY
" en "dimensionZ
"-opties voor uitvouwen -
Een rapport met dagelijkse aggregaten voor elke waarde van
dimensionX
Filters
Met uitzondering van de datum-/tijddimensies, kan elke dimensie die beschikbaar is voor de huidige projectie (dimensiepad) worden gefilterd door de naam ervan als parameter voor queryreeksen te gebruiken.
De volgende filteropties zijn beschikbaar:
-
Gelijk filters worden verstrekt door de afmetingsnaam aan een bepaalde waarde in het vraagkoord te plaatsen.
-
IN U kunt filters opgeven door dezelfde parameter dimensienaam meerdere keren met verschillende waarden toe te voegen: dimensie=waarde1&dimensie=waarde2
-
Niet gelijk filters moeten de '!' symbool na de naam van de dimensie die resulteert in de '!=' "operator": dimensie!=value
-
NIET IN voor filters is '!=' operator moet meerdere keren worden gebruikt, één keer voor elke waarde in de set: dimensie!=value1&Dimensie!=value2&…
Er is ook een speciaal gebruik voor de afmetingsnamen in het vraagkoord: Als de afmetingsnaam als parameter van het vraagkoord zonder waarde wordt gebruikt, zal dit API instrueren om een projectie terug te keren die die afmeting in het rapport omvat.
Voorbeeld-ESM-query's
GROEP BY afmetingen1, dimensie2, dimensie3
GROEP BY afmetingen1, dimensie2, dimensie3
maar er is een pad: /dimensie1/dimensie2/dimensie3
/dimensie1?dimensie3
date/time
afmetingen. De enige manier om te filteren date/time
afmetingen moeten worden ingesteld start
en end
de (hieronder beschreven) parameters van het vraagkoord aan de vereiste waarden.De volgende parameters van het vraagkoord hebben gereserveerde betekenis voor API (en daarom kunnen zij niet als afmetingsnamen worden gebruikt, of anders geen het filtreren zou voor zulk een afmeting mogelijk zijn).
Door ESM API gereserveerde parameters voor queryreeks
De enige beschikbare HTTP-methode die momenteel beschikbaar is, is GET. Ondersteuning voor OPTIONS/HEAD-methoden is mogelijk in toekomstige versies beschikbaar.
ESM API-statuscodes esm-api-status-codes
Een 400 beschadigde verzoekstatus gaat vergezeld van een verklarende tekst in het antwoordlichaam (duidelijk/tekstmedia type) dat nuttige informatie over de cliëntfout verstrekt. Naast de triviale scenario's zoals ongeldige datumformaten of filters toegepast op niet bestaande dimensies, zal het systeem ook weigeren om op vragen te antwoorden die een massaal volume van gegevens vereisen dat wordt teruggekeerd of geaggregeerd op de vlucht.
Gegevensindelingen data-formats
De gegevens zijn beschikbaar in de volgende indelingen:
- JSON (standaard)
- XML
- CSV
- HTML (voor demo-doeleinden)
De volgende strategieën voor inhoudonderhandeling kunnen door klanten worden gebruikt (de prioriteit wordt gegeven door de positie in de lijst - eerst dingen):
- Een "bestandsextensie" die wordt toegevoegd aan het laatste segment van het URL-pad: bijvoorbeeld
/esm/v2/media-company/year/month/day.xml
. Als de URL een querytekenreeks bevat, moet de extensie voor het vraagteken komen:/esm/v2/media-company/year/month/day.csv?mvpd= SomeMVPD
- Een opmaakqueryreeksparameter: bijvoorbeeld
/esm/report?format=json
- De standaard HTTP Accept-header: bijvoorbeeld
Accept: application/xml
Zowel ondersteunen de parameter "extension" als de parameter query de volgende waarden:
- xml
- json
- csv
- html
Als geen mediatype wordt opgegeven door een van de strategieën, produceert de API standaard JSON-inhoud.
Toepassingstaal Hypertext hypertext-application-language
Voor JSON en XML wordt de payload gecodeerd als HAL, zoals hier beschreven: http://stateless.co/hal_specification.html.
Het werkelijke rapport (een geneste tag/eigenschap genaamd "report") bestaat uit de feitelijke lijst met records die alle geselecteerde/toepasselijke afmetingen en meetgegevens met hun waarden bevatten, en die als volgt zijn gecodeerd:
JSON
"report": [
{
"dimension1": "d1",
...
"metric1": "m1",
...
}, {
...
}
]
XML
<report>
<record dimension1="d1" ... metric1="m1" ... />
...
</report
Voor XML- en JSON-indelingen is de volgorde van de velden (afmetingen en metriek) in een record niet opgegeven, maar consistent (de volgorde is in alle records hetzelfde). Klanten mogen echter niet vertrouwen op een bepaalde volgorde van de velden in een record.
De middelverbinding (het "zelf"rel in JSON en het "href"middelattribuut in XML) bevat de huidige weg en het vraagkoord dat voor het gealigneerde rapport wordt gebruikt. De vraagkoord zal alle impliciete en expliciete parameters openbaren, zodat de nuttige lading uitdrukkelijk het gebruikte tijdinterval, de impliciete filters (als om het even welk) zal wijzen, etc. De rest verbindingen binnen het middel zullen alle beschikbare segmenten bevatten die kunnen worden gevolgd om neer in de huidige gegevens te boren. Er wordt ook een koppeling voor roll-up toegevoegd die naar het bovenliggende pad verwijst (indien aanwezig). De href
De waarde voor de boor-down/roll-up verbindingen bevat slechts de weg URL (het omvat niet het vraagkoord, zodat moet dit zo nodig door de cliënt worden toegevoegd). Merk op dat niet alle parameters van het vraagkoord die (of geïmpliceerd) door het huidige middel worden gebruikt voor "roll-up"of "boor-down"verbindingen van toepassing zullen zijn (bijvoorbeeld, kunnen de filters niet op sub of super-middelen van toepassing zijn).
Voorbeeld (ervan uitgaande dat er één metrische waarde is, genaamd clients
en er is een pre-aggregatie voor year/month/day/...
):
- https://mgmt.auth.adobe.com/esm/v2/year/month.xml
<resource href="/esm/v2/year/month?start=2012-07-20T00:00:00&end=2012-08-20T14:35:21">
<links>
<link rel="roll-up" href="/esm/v2/year"/>
<link rel="drill-down" href="/esm/v2/year/month/day"/>
</links>
<report>
<record month="6" year="2012" clients="205"/>
<record month="7" year="2012" clients="466"/>
</report>
</resource>
-
https://mgmt.auth.adobe.com/esm/v2/year/month.json
code language-json { "_links" : { "self" : { "href" : "/esm/v2/year/month?start=2012-07-20T00:00:00&end=2012-08-20T14:35:21" }, "roll-up" : { "href" : "/esm/v2/year" }, "drill-down" : { "href" : "/esm/v2/year/month/day" } }, "report" : [ { "month" : "6", "year" : "2012", "clients" : "205" }, { "month" : "7", "year" : "2012", "clients" : "466" } ] }
CSV
In de CSV-gegevensindeling worden geen koppelingen of andere metagegevens (behalve de koptekstrij) inline verschaft. In plaats daarvan worden de metagegevens van de selectie opgenomen in de bestandsnaam, die als volgt wordt weergegeven:
esm__<start-date>_<end-date>_<filter-values,...>.csv
CSV zal een kopbalrij en dan de rapportgegevens als verdere rijen bevatten. De koptekstrij bevat alle afmetingen gevolgd door alle meetgegevens. De soortorde van de rapportgegevens zal in de orde van de dimensies worden weerspiegeld. Daarom als de gegevens door worden gesorteerd D1
en vervolgens D2
De CSV-header ziet er als volgt uit: D1, D2, ...metrics...
.
De volgorde van de velden in de koptekstrij komt overeen met de sorteervolgorde van de tabelgegevens.
Voorbeeld: https://mgmt.auth.adobe.com/v2/year/month.csv produceert een bestand met de naam report__2012-07-20_2012-08-20_1000.csv
met de volgende inhoud:
Gegevensversheid data-freshness
De geslaagde HTTP-reacties bevatten een Last-Modified
kopbal die op de tijd wijst toen het rapport in het lichaam het laatst werd bijgewerkt. Het gebrek aan een Laatst-Gewijzigde kopbal wijst erop dat de rapportgegevens in real time worden gegevens verwerkt.
Gewoonlijk worden grove korrelige gegevens minder vaak bijgewerkt dan fijnkorrelige gegevens (bijv. waarden per minuut of uurwaarden kunnen actueler zijn dan de dagelijkse waarden, vooral voor metriek die niet kan worden berekend op basis van kleinere granulariteiten, zoals unieke tellingen).
Toekomstige versies van ESM kunnen cliënten toestaan om voorwaardelijke GETs uit te voeren door de standaard "if-Modified-Since"kopbal te verstrekken.
GZIP-compressie gzip-compression
De Adobe adviseert sterk dat u gzip steun in cliënten toelaat die ESM- rapporten halen. Dit zal de responsgrootte aanzienlijk verminderen, wat op zijn beurt de responstijd vermindert. (De compressieverhouding voor ESM-gegevens ligt in het bereik 20-30.)
Als u gzip-compressie wilt inschakelen in uw client, stelt u de optie Accept-Encoding:
koptekst als volgt:
- Accepteren-coderen: gzip, deflate