2017-07-29 1 views
0

Nous démarrons un nouveau projet et essayons de mettre en œuvre certains concepts de la conception pilotée par domaine. Nous prévoyons d'avoir des couches suivantes:Code de service d'application dans WebAPI

  1. Interface Web (WebAPI)
  2. Application Services (bibliothèque)
  3. Services de domaine (bibliothèque)
  4. d'accès aux données des services (bibliothèque)

Nous envisageons de fusionner l'interface Web et le service d'application ensemble. Ainsi, notre webAPI parlera aux dépôts, au modèle de domaine et aux services de domaine.

Est-ce correct ou devrions-nous avoir des services d'application de formulaire de projet distincts et WebAPI ne devrait communiquer qu'avec les services d'application?

Merci

+1

Il n'y a probablement rien de mal à avoir des services d'application à granularité grossière qui agissent comme un intermédiaire, mais j'ai tendance à commencer sans eux jusqu'à ce que j'en aie besoin. Parfois, la délégation est juste trop mince pour que je m'en soucie, par exemple: 'SomeService.Find (id)' vs 'SomeQuery.Find (id)' ... pas grand chose :) –

Répondre

2

HTTP doit être considéré comme l'un des ports d'accès potentiellement nombreux pour atteindre vos services d'application. Si vous pouviez être sûr que vous n'auriez jamais à parler à votre application via un autre canal de communication que HTTP, je dirais qu'il est parfaitement inutile d'avoir une couche d'application séparée. Cependant, je dirais aussi qu'il est très difficile de prédire comment les besoins de l'application évolueront et puisque l'ajout d'une couche supplémentaire d'indirection pour séparer la couche d'application tout de suite ne devrait pas être très coûteux (c'est juste la délégation). Je ferais.