Je souhaite créer une API pour une grande application ASP.NET MVC. Cette application utilise des viewmodels fortement typés pour toutes ses vues. Le travail le plus important pour l'API sera de permettre la fonctionnalité du site sur d'autres plateformes telles que l'Objective C de l'iPhone.Réutilisation de ViewModels pour API dans ASP.NET MVC?
Maintenant, l'idée est de réutiliser les ViewModels et les actions de contrôleur existantes pour l'API, dans un tel manière que les modèles de vue soient renvoyés en tant que résultats JSON ou Ajax par le contrôleur au lieu de la vue.
Mais il y a eu quelques discussions à ce sujet, parce que viewmodels a beaucoup d'informations composites qui ne semblent pas toujours utiles pour une API. Par exemple, une fonction d'API typique pourrait être GetRanking(). Le viewmodel appartenant à l'action Ranking() contient en réalité plus de données, telles que le nom de l'utilisateur actuel et peut-être quelques explications sur le classement. La question est donc de savoir quelle serait la meilleure façon d'aborder cela: écrire des actions séparées pour les objets api et renvoyer des objets de domaine sérialisés, ou réutiliser les actions et modèles de vue en cours, et ignorer simplement les données inutiles?
Est-ce que vous le réutiliser les actions du contrôleur, ou de créer des actions spécifiques pour l'API? – Randam
C'est un peu une décision tactique pour être honnête. Cela dit, vos contrôleurs doivent être simples, pas cher et comme le véritable jetable magique devrait se produire dans la couche de domaine, alors je ferais probablement un ensemble distinct de contrôleurs de service. –