Validar entidades com esquemas JSON

Para validar entidades ao criar ou atualizar seu feed, use o seguinte JSON Esquemas. Os esquemas são baseados na especificação do Esquema JSON. Ao adicionar um teste de unidade para validar as entidades geradas, é possível detectar problemas que possam afetar a qualidade do feed. Também é possível usar esses esquemas durante o desenvolvimento do seu feed para evitar erros comuns.

Selecionar um esquema de ações de mídia

  • O esquema do Video On Demand valida as entidades Movie, TVEpisode, TVSeries e TVSeason.
  • O esquema de TV ao vivo valida as entidades BroadcastEvent, BroadcastService, CableOrSatelliteService, Movie, Organization, SportsEvent, TelevisionChannel, TVEpisode, TVSeason e TVSeries.
  • O Esquema de música valida as entidades MusicAlbum, MusicGroup, MusicPlaylist e MusicRecording.
  • O Esquema de opção valida entidades RadioBroadcastService.
.

Use a especificação neste site como fonte, já que esses esquemas podem não ter todos os recursos implementados.

Escolher um validador

Encontre a lista de implementações do validador em json-schema.org (link em inglês).

Os esquemas fornecidos estão escritos no rascunho 7, portanto, a implementação escolhida precisa ser compatível com essa versão para funcionar corretamente.

Exemplo de validação

O exemplo a seguir mostra como validar todas as entidades presentes em um arquivo feed.json usando o arquivo de esquema schema.json e o módulo Python jsonschema. As entidades estão no propriedade dataFeedElement conforme especificado na documentação do envelope do feed de dados.


    import json
    from jsonschema import validate

    # Loading the schema file
    with open("schema.json", "r") as fp:
        schema = json.load(fp)

    # Opening the feed
    with open("feed.json", "r") as fp:
        feed = json.load(fp)

    # Validating each entity in the feed
    for entity in feed["dataFeedElement"] :
        try:
            validate(schema=schema, instance=entity)
            print("Entity validated successfully")
        except Exception as e:
            # e may contain an explanation as to why the entity wasn't valid
            print("Failed to validate the entity")