Une façade commune
Centraliser l’accès à Navidrome évite de réimplémenter toute l’intégration dans chaque client. En contrepartie, le BFF devient un composant à héberger, observer et maintenir ; sa disponibilité conditionne l’accès des clients.
Écouter ma bibliothèque musicale auto-hébergée avec une interface web et une application Android cohérentes. J’ai conçu et développé ce projet personnel, de la façade serveur aux deux clients.
Étude vérifiée le . Rôle : conception et développement personnels.
La musique est déjà stockée dans Navidrome. Le besoin porte sur l’expérience de lecture : bibliothèque, recherche, favoris, playlists et file d’attente. Il faut partager les mêmes fonctions entre le navigateur et Android tout en conservant Navidrome derrière une interface serveur.
API ASP.NET Core, client web JavaScript, application Flutter, connexion à Subsonic et tests des services. Le travail comprend aussi l’authentification, le proxy des médias et la séparation des données complémentaires. Le code web et le code mobile sont publiés dans deux dépôts distincts.
Les clients web et Flutter appellent une API commune. Cette façade, ou BFF, adapte l’API Subsonic de Navidrome et relaie les flux audio et les pochettes. PostgreSQL conserve les données complémentaires de podcasts et les positions de lecture des livres audio.
Interface, état du lecteur et navigation.
Session, contrat commun et proxy des médias.
Bibliothèque musicale d’un côté, données complémentaires de l’autre.
Centraliser l’accès à Navidrome évite de réimplémenter toute l’intégration dans chaque client. En contrepartie, le BFF devient un composant à héberger, observer et maintenir ; sa disponibilité conditionne l’accès des clients.
Le client mobile tolère les collections absentes et certaines variations de forme des réponses Subsonic. Les modèles et les helpers de désérialisation isolent ces particularités de l’interface. Cette tolérance doit rester couverte par des exemples précis.
Une fonction disponible dans le serveur n’implique pas automatiquement son interface sur chaque client. Lecture musicale, podcasts, livres audio et intégrations médias se vérifient séparément, avec leur propre état d’avancement.
Le 23 octobre 2026, la suite des services .NET a été exécutée sur le projet source : 29 tests réussis, aucun échec. Elle couvre notamment la construction des requêtes Subsonic, le traitement des réponses et erreurs, ainsi que l’acceptation ou le refus de jetons de session.
Ces tests valident les comportements couverts dans un environnement de développement. Ils ne remplacent pas une recette de lecture sur les appareils, un test de charge ou un audit de sécurité de l’installation.
Résultat observable : deux clients utilisent une même frontière API. Ce projet personnel donne un exemple de conception et de validation, sans chiffre de performance ou résultat commercial attribué à un client.
Décrivez vos clients web ou mobiles, les systèmes à connecter et les accès disponibles. Premier retour sous 48 h ouvrées, devis après cadrage.