Show Menu
TOPICS×

Validar solicitações de evento

O corpo da solicitação JSON para cada tipo de evento é validado no back-end com os esquemas JSON. O corpo da resposta HTTP é preenchido com uma mensagem de erro quando a validação falha para uma chamada de API.
Os esquemas de validação JSON para cada tipo de evento estão disponíveis publicamente aqui:
{uri}/api/v1/schemas/{eventType}
(por exemplo,
{uri}/api/v1/schemas/sessionEnd
). Esses esquemas de validação JSON são a autoridade absoluta para determinar os parâmetros de corpo de solicitação corretos para cada tipo de evento.
Por exemplo, a resposta a uma solicitação para o esquema de validação
sessionStart
aparece como neste exemplo (ligeiramente formatado para facilitar a leitura aqui):
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" } }
A validação em nível de sessão não é possível, pois o contexto da sessão não está disponível na camada da coleção.