Files
webzine/Webzine.Documentation/SpotifySeederRecap.md
2026-04-02 17:59:36 +02:00

5.7 KiB
Raw Blame History

Récapitulatif des modifications pour le seeder Spotify

Objectif

Ajout dun seeder capable de récupérer de vraies données depuis lAPI Spotify pour alimenter lapplication avec :

  • des artistes
  • des styles
  • des titres
  • des commentaires générés localement autour de ces vraies données

1. Nouveau seeder Spotify

Fichier ajouté

Webzine.Entity/Fixtures/SeedDataSpotify.cs

Ce qui a été fait

  • création de la classe SeedDataSpotify
  • ajout de la classe de configuration SpotifySeederOptions
  • appel à lAPI Spotify via HttpClient
  • authentification avec le flux OAuth client_credentials
  • récupération dartistes par genre
  • récupération des albums de chaque artiste
  • récupération des titres de chaque album
  • mapping des données Spotify vers les entités métier :
    • Artiste
    • Style
    • Titre
    • Commentaire
  • génération de commentaires locaux via SeedDataLocal
  • transformation des genres Spotify en Style
  • génération de valeurs applicatives cohérentes :
    • Chronique
    • NbLectures
    • NbLikes
    • DateSortie
    • UrlJaquette
    • UrlEcoute

Comportement

Le seeder produit un jeu de données exploitable par :

  • le mode base de données
  • le mode mémoire

2. Création dun conteneur commun pour le seeding

Fichier ajouté

Webzine.Entity/Fixtures/SeedDataSet.cs

Ce qui a été fait

Ajout dun objet SeedDataSet contenant :

  • Artistes
  • Styles
  • Titres
  • Commentaires

Pourquoi

Cela permet dunifier le résultat du seeding, quil vienne :

  • du générateur local
  • de Spotify

3. Adaptation du repository DB

Fichier modifié

Webzine.Repository/DbEntityRepository.cs

Ce qui a été fait

Modification de SeedBaseDeDonnees pour quelle puisse :

  • continuer à générer les données locales comme avant
  • ou accepter un SeedDataSet externe déjà préparé

Résultat

Le repository peut maintenant insérer en base :

  • soit les données fake locales
  • soit les données réelles récupérées depuis Spotify

4. Branchement du seeder dans le démarrage de lapplication

Fichier modifié

Webzine.WebApplication/Program.cs

Ce qui a été fait

  • enregistrement de la configuration SpotifySeeder
  • enregistrement de SeedDataSpotify via AddHttpClient
  • lecture de SeederType
  • ajout de la logique :
    • si Seeder = Spotify, on appelle SeedDataSpotify
    • sinon on garde SeedDataLocal

Cas couverts

  • Repository = Db
  • Repository = Local

Donc le mode Spotify fonctionne aussi bien :

  • avec SQLite/PostgreSQL
  • quavec le store mémoire

5. Ajout de la configuration Spotify

Fichiers modifiés

Ce qui a été ajouté

Section SpotifySeeder avec :

  • ClientId
  • ClientSecret
  • Market
  • Genres
  • ArtistsPerGenre
  • AlbumsPerArtist
  • TracksPerAlbum
  • MaxCommentsPerTrack

Utilisation

Pour activer le seeder Spotify :

{
  "Seeder": "Spotify"
}

Et renseigner :

"SpotifySeeder": {
  "ClientId": "...",
  "ClientSecret": "..."
}

6. Dépendance ajoutée

Fichier modifié

Webzine.Entity/Webzine.Entity.csproj

Ce qui a été fait

Ajout du package :

  • Microsoft.Extensions.Options

Pourquoi

Pour injecter proprement SpotifySeederOptions dans SeedDataSpotify

7. Effet sur les données de lapplication

Avec le seeder Spotify, les titres créés utilisent maintenant :

  • un vrai nom de titre
  • un vrai artiste
  • un vrai album
  • une vraie jaquette Spotify
  • une vraie URL Spotify
  • des styles dérivés des genres Spotify

Les commentaires restent générés localement pour enrichir laffichage.

8. Point dattention

Je nai pas pu valider la compilation complète dans cet environnement à cause dun problème SDK/.NET local lié au workload resolver, pas à une erreur C# remontée sur les fichiers modifiés.

9. Fichiers impactés

Ajoutés

Modifiés