Show Menu
TOPICS×

Validation des requêtes d’événement

Le corps de la requête JSON pour chaque type d’événement est validé sur le serveur principal avec les schémas JSON. Le corps de la réponse HTTP est renseigné avec un message d’erreur lorsque la validation échoue pour un appel API.
Les schémas de validation JSON pour chaque type d’événement sont publiquement accessibles ici :
{uri}/api/v1/schemas/{eventType}
(par ex.,
{uri}/api/v1/schemas/sessionEnd
). Ces schémas de validation JSON sont l’autorité absolue pour déterminer les paramètres de corps de requête corrects pour chaque type d’événement.
Par exemple, la réponse à une requête pour le schéma de validation
sessionStart
a une apparence similaire à cet exemple (ici légèrement formaté pour être lisible) :
HTTP/1.1 200 OK Server: nginx/1.13.5 Date: Thu, 18 Jan 2018 15:44:50 GMT Content-Type: application/json Content-Length: 2716 Connection: keep-alive { "$schema":"https://json-schema.org/draft-04/schema#", "id":"https://alpha.hb-api.omtrdc.net/api/v1/schemas/sessionStart", "definitions": { "playerTime": { "type":"object","properties": { "playhead": {"type":"number"}, "ts": {"type":"integer"} }, "required":["playhead","ts"], "additionalProperties":false }, "eventType": { "type":"string", "enum":[ "sessionStart", "play", "ping", "bufferStart", "pauseStart", "sessionComplete", "bitrateChange", "error", "adBreakStart", "adBreakComplete", "adStart", "adComplete", "adSkip", "sessionEnd" ] }, "qoeData": { "type":"object","properties": { "media.qoe.bitrate": {"type":"integer"}, "media.qoe.droppedFrames": {"type":"integer"}, "media.qoe.framesPerSecond": {"type":"integer"}, "media.qoe.timeToStart": {"type":"integer"} }, "required":[], "additionalProperties":false }, "customMetadata": { "type":"object", "patternProperties": { "^[a-zA-Z0-9_\\.]+$": {"type":"string"} }, "additionalProperties":false }, "sessionStart": { "properties": { "eventType": {"type":"string","enum":["sessionStart"]}, "playerTime": {"$ref":"#/definitions/playerTime"}, "params": {"type":"object", "properties": { "appInstallationId": {"type":"string"}, "analytics.trackingServer": {"type":"string"}, "analytics.reportSuite": {"type":"string"}, <...> "visitor.marketingCloudOrgId"], "additionalProperties":false }, "customMetadata": {"$ref":"#/definitions/customMetadata"}, "qoeData": {"$ref":"#/definitions/qoeData"} }, "required":["eventType","playerTime","params"], "additionalProperties":false } }, "type":"object","$ref":"#/definitions/sessionStart" } }
La validation du niveau de session n’est pas possible, car le contexte de session n’est pas disponible dans la couche de collection.