Valider des entités à l'aide de schémas JSON

Pour valider les entités lorsque vous créez ou mettez à jour votre flux, utilisez le fichier JSON suivant : Schémas Les schémas sont basés sur la spécification de schéma JSON. En ajoutant un test unitaire pour valider les entités que vous générez, vous pouvez détecter qui auraient un impact sur la qualité du flux. Vous pouvez également utiliser ces schémas au développement de votre flux pour éviter les erreurs courantes.

Sélectionner un schéma Media Actions

  • Le schéma de vidéo à la demande valide les entités Movie, TVEpisode, TVSeries et TVSeason.
  • Le schéma de télévision en direct valide les entités BroadcastEvent, BroadcastService, CableOrSatelliteService, Movie, Organization, SportsEvent, TelevisionChannel, TVEpisode, TVSeason et TVSeries.
  • Music Schema valide les entités MusicAlbum, MusicGroup, MusicPlaylist et MusicRecording.
  • Radio Schema valide les entités RadioBroadcastService.

Utilisez la spécification indiquée sur ce site comme source de référence, car il est possible que toutes les fonctionnalités ne soient pas implémentées dans ces schémas.

Choisir un programme de validation

Vous trouverez la liste des implémentations de validateur sur json-schema.org.

Les schémas fournis sont écrits dans la version draft 7. Par conséquent, l'implémentation que vous choisissez doit être compatible avec cette version pour fonctionner correctement.

Exemple de validation

L'exemple suivant montre comment valider toutes les entités présentes dans un fichier. feed.json à l'aide du fichier de schéma schema.json et du module Python jsonschema. Les entités se trouvent dans dataFeedElement comme indiqué dans la documentation sur l'enveloppe de flux de données.


    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")